给定一个字符串,找出一个子串,拥有连续的字符且长度是最长的

121 阅读1分钟

给定一个字符串,找出一个子串,拥有连续的字符且长度是最长的 例子: 给定adddbcddddav 输出dddd 解法:


public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        String input = in.next();

        if(StringUtils.isNotBlank(input)){
            int max =0;
            int count = 0;
            char selectKey = 0;
            boolean flag=false;
            for(int i=0;i<input.length()-2;i++){
                char c = input.charAt(i);
                for(int j=i;j<input.length();j++){
                    char c2 = input.charAt(j);
                    if(c == c2){
                        count++;
                        if(count>max){
                            max = count;
                            selectKey = c;
                        }
                        if(j==input.length()-1){
                           flag = true;
                        }
                    }else {
                        i = j-1;
                        count = 0;
                        break;
                    }
                }
                if(flag){
                    break;
                }
            }
            System.out.println(String.valueOf(selectKey) +"出现次数:"+max);
            String lastStr = "";
            for(int i=0;i<max;i++){
                lastStr+= selectKey;
            }
            System.out.println(lastStr);
        }
    }
}