看到一個算法題—>給定一個字符串,問是否能經過添加一個字母將其變爲迴文串 貼上本身的實現思路: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); } }