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"); } }