题解 | #密码截取#
密码截取
https://www.nowcoder.com/practice/3cd4621963e8454594f00199f4536bb1
import java.util.Scanner; import java.util.*; // 注意类名必须为 Main, 不要有任何 package xxx 信息 public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); String str = in.nextLine(); System.out.println(get(str)); } private static int get(String str) { List<String> intList = new ArrayList<>(); // 从第二个开始往两边找,找到一样的就保存起来,找出所有ABA类型的 for (int i = 1, len = str.length() - 1; i < len; i++) { for (int j = 0; j <= i && j <= len - i; j++) { if (str.charAt(i - j) == str.charAt(i + j)) { intList.add(str.substring(i - j, i + j + 1)); } else { break; } } } // 从第一个开始往两边找,找ABBA类型的 for (int i = 0, len = str.length() - 1; i < len; i++) { for (int j = 0; i - j >= 0 && i + j + 1 <=len; j++) { char left = str.charAt(i - j); char right = str.charAt(i + j + 1); if (left == right) { String subStr = str.substring(i - j, i + j + 2); intList.add(subStr); } else { break; } } } return intList.stream().map(String::length).max(Integer::compareTo).get(); } }