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


#百度笔试##在找工作求抱抱#
全部评论

相关推荐

10-07 23:57
已编辑
电子科技大学 Java
八街九陌:博士?客户端?开发?啊?
点赞 评论 收藏
分享
把球:这个听过,你加了就会发现是字节的hr
点赞 评论 收藏
分享
点赞 1 评论
分享
牛客网
牛客企业服务