思路一实现: class Solution { public: string longestPalindrome(string s) { string res = s.substr(0,1); int length = 1; bool ** P = new bool*[s.length()]; for(int i = 0; i < s.length(); i++) { P[i] = new bool[s.length(
dp[i]的类型为int,判断比较的速度慢于boolean类型 初始的寻找最大回文子串方式是每次判断到长度变大,就调用一次s.substring(start,end)大大增加了开销,最后修改后决定采用保存开始位置start与长度len的方法。 在子串长度为1和2时不必要地对start与len赋值,现在加上了判断条件。 参考链接 http://articles.leetcode....
public class Solution { /** * @param s: input string * @return: the longest palindromic substring */ public String longestPalindrome(String s) { // write your code here char[] S = s.toCharArray(); int sLength = S.length; int maxLength = 1; String resultSbuString = ""; for(int ...
Can you solve this real interview question? Longest Palindromic Substring - Given a string s, return the longest palindromic substring in s. Example 1: Input: s = "babad" Output: "bab" Explanation: "aba" is also a valid answer. Example 2: Input
def longestPalindrome(self, s: str) -> str: # if s == s[::-1]: return s l, ms = len(s), '' if l < 2: return s # 比第一行更优点 #l, m, ms = len(s), 1, s[0] # m 最大长度 ms 最长子串 for i in range(l): ...
class Solution { public String longestPalindrome(String s) { if (s == null) return null; String answer = ""; int l = s.length(); for (int i = 0; i < l; i++) { for (int j = i + 1; j <= l; j++) { String substr = s.substring(i, j); if (isPalindrome(substr) ...
public String longestPalindrome(String s) { for(int i=s.length(); i>1; i--){ for(int j=0; j+i<=s.length(); j++){ String str = s.substring(j, j+i); if(isPalindrome(str)){ return str; } } } //不存在长度为二及以上的回文串 ...
先提供第二种方式的解答,通过提交public class Solution {public String longestPalindrome(String s) { int max = Integer.MIN_VALUE;//最长回文子串长度; String result = ""; for(int i=0;i<s.length();i++){ //奇数中心展开 String temp1 = expandFromCenterToEdge(s, i, i);...
publicStringlongestPalindrome(Strings){Stringresult="";char[]characters=s.toCharArray();for(inti=0;i<s.length();i++){StringtmpStr=s.substring(i);if(result.length()>=tmpStr.length())returnresult;while(tmpStr.length()>0){booleanisReverse=isReverseMethod(tmpStr);if(isReverse){//是回文if(...
public StringlongestPalindrome(String s){if(s.length()==0){return"";}int len=s.length();int longest=1,start=0,end=1;String reverse=newStringBuffer(s).reverse().toString();for(int i=1;i<len;i++){for(int j=0;j<i;j++){int length=i-j+1;if(reverse.indexOf(s.substring(j,i...