看到一个算法题—>给定一个字符串,问是否能经过添加一个字母将其变为回文串 贴上本身的实现思路:java
import java.util.*; public class addOne { public static void main(String[] args) { Scanner in = new Scanner(System.in); String str = in.nextLine(); System.out.println(isPalindrome(str)); } private static String isPalindrome(String str) { if(str.length()<2) return "YES"; int start=0; int end =str.length()-1; char[] arr = str.toCharArray(); //把首尾相同的字符排除不进入比较 while(arr[start]==arr[end]&&start<end){ start++; end--; } str=str.substring(start,end+1); //三种情形:去掉头字符后回文;去掉尾字符后回文;自己回文; if (isP(str.substring(1)) || isP(str.substring(0, str.length() - 1))||isP(str)) { return "YES"; }else{ return "NO"; } } //Java特有方法判断回文 private static boolean isP(String str){ return new StringBuilder(str).reverse().toString().equals(str); } }