解题思路:
1.遍历字符串A中的所有可以插入的位置(A.length也需要算入)
2.使用StringBuilder进行拼接
3.使用双指针法进行判断是否回文(即i,j指针分别指向0和 length-1,然后遍历判断两个字符是否相等)
这种判断方法的时间复杂度只需要reverse之后进行比较的一半,所以比较推荐
代码:
public static void main(String[] args){ Scanner sc = new Scanner(System.in); while(sc.hasNext()){ StringBuilder s1 = new StringBuilder(sc.nextLine()); StringBuilder s2 = new StringBuilder(sc.nextLine()); int count = 0; for(int i= 0;i<=s1.length();i++){ StringBuilder temp = new StringBuilder(s1); temp.insert(i,s2); if(isLegal(temp)){ count++; } } System.out.println(count); } } public static boolean isLegal(StringBuilder temp){ int i = 0; int j = temp.length()-1; while(i<j){ if(temp.charAt(i++)!=temp.charAt(j--)){ return false; } } return true; }