import java.util.*; public class Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * @param s string字符串 * @return string字符串 */ public String longestPalindrome (String s) { // write code here String ans = ""; int max = 0; int len = s.length(); for (int i = 0; i < len; i++) { for (int j = i + 1; j <= len; j++) { //得到所有的字串 String tmp = s.substring(i, j); if (isPalindromic(tmp) && tmp.length() > max) { ans = tmp; max = j - i; } } } return ans; } //判断是否是回文子串 private static boolean isPalindromic(String s) { int len = s.length(); for (int i = 0; i < len / 2; i++) { if (s.charAt(i) != s.charAt(len - i - 1)) { return false; } } return true; } }
class Solution { public: /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * @param s string字符串 * @return string字符串 */ string func(string& s,int left,int right){ while(left>=0&&right<s.size()&&s[left]==s[right]){ left--; right++; } string ret=s.substr(left+1,right-1); return ret; } string longestPalindrome(string s) { // write code here string ret; string s1,s2; for(int i=1;i<s.size()-1;i++){ s1=func(s,i,i); s2=func(s,i,i+1); int l1=s1.size(); int l2=s2.size(); if(l1>l2&&l1>ret.size()){ ret.clear(); ret=s1; }else if(l2>l1&&l2>ret.size()){ ret.clear(); ret=s2; } } return ret; } };