题解 | #密码截取#

密码截取

https://www.nowcoder.com/practice/3cd4621963e8454594f00199f4536bb1

import java.util.Scanner;
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        String s = in.nextLine();
        int len = s.length();
        int maxLen = 1;
        for(int i = 0; i < len-1; i++){
            int tempLen = 1;
            if(s.charAt(i) == s.charAt(i + 1)){
                int ii = i;
                while(ii < len && s.charAt(ii) == s.charAt(ii + 1)){
                    tempLen++;
                    ii++;
                }
                int jj = i - 1;
                ii = ii + 1;
                while(jj >=0 && ii<len && s.charAt(jj) == s.charAt(ii)){
                    tempLen += 2;
                    jj--;
                    ii++;
                }
            }else{
                int ii = i + 1;
                int jj = i - 1;
                while(ii < len && jj >= 0 && s.charAt(jj) == s.charAt(ii)){
                    tempLen += 2;
                    jj--;
                    ii++;
                }
            }
            if(maxLen < tempLen){
                maxLen = tempLen;
            }
        }
        System.out.print(maxLen);
    }
}

简单思路实现:

1.从左向右遍历,如果右边字符和当前字符相等,则向右接着找,直到不同

2.最中间的连串找完后,只需要对比串左右端是否相等,相等继续扩展,否则退出循环输出结果

3.条件1不满足直接进入条件2环节

全部评论

相关推荐

评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务