题解 | #密码截取#
密码截取
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环节


