//最简单的输出单词问题
import java.util.Scanner;
public class Main{
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String str=sc.nextLine();
char[] ch=str.toCharArray();
int i=0,j=0;
while(i<ch.length){
if(ch[i]==' '){
if(i>j){
for(int q=j;q<i;q++){
System.out.print(ch[q]);
}
System.out.print(' ');
}
j=i+1;
}
i++;
}
if(i>j){
for(int k=j;k<i;k++){
System.out.print(ch[k]);
}
}
sc.close();
}
}
//最长连续不重复子序列
import java.util.*;
public class Main{
public static void main(String[] args){
Scanner sc=new Scanner(System.in);
int n=sc.nextInt();
int m=100000;
int[] num=new int[n+1];
int[] con=new int[m];
int max=0;
for(int i=0;i<n;i++){
num[i]=sc.nextInt();
}
//众所周知,下面代码部分比较关键
//j指针先移动着,当con里面的数大于1时,也就是重复了,i就会向前跟,直到跑到重复数字的下一个地方,属于是找地方重新开始的感觉
//而max先生就像一个史官,随时记录最长不重复子序列
for(int i=0,j=0;j<n;j++){
con[num[j]]++;
while(con[num[j]]>1){
con[num[i]]--;
i++;
}
max=Math.max(max,j-i+1);
}
System.out.print(max);
}
}
//挖矿-bb
import java.util.Arrays;
import java.util.Scanner;
// 类名必须为 Main,不可修改
public class Main {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
// 读取矿洞数量 n 和最大移动距离 m
int n = scan.nextInt();
int m = scan.nextInt();
// 存储每个矿洞的坐标
int[] arr = new int[n];
for (int i = 0; i < n; i++) {
arr[i] = scan.nextInt();
}
// 对矿洞坐标进行排序
Arrays.sort(arr);
int maxOre = 0;
int left = 0;
// 双指针遍历矿洞区间,通过枚举出所有符合距离小于m的区间,从中选择可得宝石数最大的
for (int right = 0; right < n; right++) {
// 若当前区间距离超过最大移动距离 m,则右移左指针
//Math.min(Math.abs(arr[left]), Math.abs(arr[right]))是用来通过左右指针所指的矿坑位置谁离原点最近,因为可以向左右两个方向移动
//向左右两个方向任一移动的距离也是m的一部分
//arr[right] - arr[left]:两个矿坑之间的绝对距离
while (left <= right && Math.min(Math.abs(arr[left]), Math.abs(arr[right])) + arr[right] - arr[left] > m)
{
left++;
//如果超出了m,就通过左指针右移缩小区间
}
// 更新最大矿石数
maxOre = Math.max(maxOre, right - left + 1);
}
// 输出最多能获得的矿石单位数
System.out.println(maxOre);
// 关闭 Scanner 对象,释放资源
scan.close();
}
}
//洛谷 合法密码
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String str = sc.nextLine();
int con=0;
for(int i=0;i<=str.length()-8;i++){
for(int n=i+8;n<=i+16&&n<=str.length();n++){
//字符串截取,不包括n,仅截取i到n-1
String str1=str.substring(i,n);
//判断字符串是否有数字
boolean hasDigit=str1.matches(".*\\d.*");
//判断字符串是否有符号
boolean hasSymbal=str1.matches(".*[^a-zA-Z0-9].*");
if(hasSymbal&&hasDigit) con++;
}
}
System.out.print(con);
}
}