9月13日百度
第一题:小红的"baidu"型子串。
所谓的"baidu"型字符串,第一个,第四个字母是辅音,第2、3、5是元音。且每个字母都不相同的字符串
例如:"taigu"、"paobu"、”baoli“都是"baidu"型字符串
定义'a'、'i'、‘e’、'o'、'u'是元音
要求:小写字母组成的字符串
输入:"baiduoxiaojiabankanjianran"
输出:2
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
char[] arr = {'a','e','i','o','u'};
String input = sc.nextLine();
char[] charArray = input.toCharArray();
int res = 0;
if(charArray.length<5){
return;
}
for (int i = 0; i <charArray.length-5 ; i++) {
if (checkRepeat(charArray[i], charArray[i+1], charArray[i+2], charArray[i+3],charArray[i+4])) {
if(isBaidu(charArray[i], charArray[i+1], charArray[i+2], charArray[i+3],charArray[i+4])){
res++;
}
}
}
System.out.println(res);
}
public static boolean isBaidu(char c,char c1,char c2,char c3,char c4){
ArrayList arrayList = new ArrayList();
arrayList.put('a');
arrayList.put('e');
arrayList.put('i');
arrayList.put('o');
arrayList.put('u');
if(arrayList.contains(c1)&&
arrayList.contains(c2)&&
arrayList.contains(c4)&&
!arrayList.contains(c)&&
!arrayList.contains(c3)){
return true;
}
return false;
}
public static boolean checkRepeat(char c,char c1,char c2,char c3,char c4){
if(c==c1||c==c2||c==c3||c==c4||c1==c2||c1==c3||c1==c4||c2==c3||c2==c4||c3==c4){
return false;
}
return false;
}
第二题:小红拿到了一个01串,她每次可以选择一个长度为2的连续子串取反(0变1,1变0)她想知道,是否能在有限的操作次数内使得所有字符相同
输入描述:第一行输入一个正整数q,代表询问次数
对于每次询问,如果该字符串可以通过有限的操作使得所有的字符相同,输出”Yes" ,否则输出"No"
输入:
3
101
1111
1011
输出:
Yes
Yes
No
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String num = sc.nextLine();
int n = Integer.parseInt(num);
List<Boolean> res = new ArrayList<>();
for (int i = 0; i <n ; i++) {
String line = sc.nextLine();
//统计0和1的数目
int countZero = 0,countOne=0;
String str1 = "0";
String str2 = "1";
int start = 0;
while(line.indexOf(str1,start)>=0&&start<line.length()){
countZero++;
start = line.indexOf(str1,start)+str1.length();
}
start = 0;
while (line.indexOf(str2,start)>=0&&start<line.length()){
countOne++;
start = line.indexOf(str2,start)+str2.length();
}
if(countZero%2==1&&countOne%2==1){
res.add(false);
}else {
res.add(true);
}
}
for (Boolean b:res) {
System.out.println(b?"YES":"NO");
}
} 
