题解 | #最长回文子串#
最长回文子串
https://www.nowcoder.com/practice/b4525d1d84934cf280439aeecc36f4af
import java.util.*; public class Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param A string字符串 * @return int整型 */ public int getLongestPalindrome (String A) { // write code here String longestPalidromStr = ""; //常规方法 for(int i=0; i<A.length(); i++){ for(int j=i+1; j<=A.length(); j++){ String subStr = A.substring(i, j); if(ispPalidromStr(subStr) && subStr.length()>longestPalidromStr.length()){ longestPalidromStr = subStr; } } } System.out.println(longestPalidromStr); return longestPalidromStr.length(); } // public boolean ispPalidromStr(String s){ // //转换位小写 // s = s.replaceAll("\\s", "").toLowerCase(); // int left = 0; // int right = s.length()-1; // while(left < right){ // if(s.charAt(left) != s.charAt(right)){ // return false; // } // left ++; // right--; // } // return true; // } //这个效率更高更快 public boolean ispPalidromStr(String s){ //转换位小写 s = s.replaceAll("\\s", "").toLowerCase(); StringBuilder reverseStr = new StringBuilder(s).reverse(); return reverseStr.toString().equals(s); } }