leetcode 回文字串系列

2021-07-29 18:29:38 字數 1909 閱讀 4762

5. longest palindromic substring

題目:找到乙個字串中最長的回文子串

思路:遍歷字串,看以下兩種情況得到的子串是不是回文

1)?+目前最長子字串長度的字串+當前字元——是回文則最長子字串長度+2

2)目前最長子字串長度的字串+當前字元——是回文則最長子字串長度+1

判斷是否回文需要注意start和end是否在字串長度外

public class solution 

else if(ispalindrome(s,i-current,i))

}return ret;

}public boolean ispalindrome(string s,int start,int end)

}return true;

}}

516. longest palindromic subsequence

題目:找到最長回文子串的長度(不連續)

思路:動態規劃——建立二維動態規劃陣列dp,分別存i到j子串的最長回文長度。對角線dp[i][i]均為1,對角線坐下角矩陣均為0,右上角矩陣從下到上慢慢擴散,最後計算出dp[0][s.length()-1]為輸出結果。

public class solution 

else}}

return dp[0][s.length()-1];

}}

214. shortest palindrome

題目:在輸入字串前加入最少字元,使其成為乙個回文串。

思路:暴力解法——從後往前看子串是否為回文串,是跳出將後面子串反序補到前面,實現沒有問題,但是時間複雜度太高。

public class solution 

}if(max == s.length()) return s;

stringbuffer sb = new stringbuffer(s.substring(max, s.length()));

return sb.reverse().tostring()+s;

}public boolean ispalindrome(string s)

return (x == rev)||(x == rev/10);

}}

234. palindrome linked list

題目:判斷乙個單向鍊錶是不是回文,要求o(n)時間複雜度和o(1)空間複雜度

思路:two pointers——分為三步,第一,找到鍊錶的中間節點,第二,反轉後半部分鍊錶,第三,比較前半部分鍊錶和反轉後的後半部分鍊錶是否回文。這裡在找中間節點的時候用到了快慢指標,遍歷一次即可,以前喜歡先算出鍊錶長度,再除2得到中間節點,這個毛病要改掉。

反轉鍊錶的過程想複雜了,簡單過程如下:

對於1 -> 2,新建pre節點,取null

(1)1 -> 2

| |head節點 next節點

(2)pre <- 12

(3)pre <- 1

2    |

|pre節點  head節點

head為空時跳出迴圈。

/**

* definition for singly-linked list.

* public class listnode

* }*/public class solution

if(fast != null)

listnode pre = null;

while(slow != null)

slow = pre;

fast = head;

while(slow != null)

return true;

}}

LeetCode 驗證回文字串

給定乙個非空字串s,最多刪除乙個字元。判斷是否能成為回文字串。示例 1 輸入 aba 輸出 true 示例 2 輸入 abca 輸出 true 解釋 你可以刪除c字元。注意 字串只包含從 a z 的小寫字母。字串的最大長度是50000。思路 雙指標 當不相等的時候 左指標跳過乙個或者右指標跳過乙個 ...

Leetcode 驗證回文字串。

給定乙個字串,驗證它是否是回文串,只考慮字母和數字字元,可以忽略字母的大小寫 說明 本題中,我們將空字串定義為有效的回文串 1.先將字串變為小寫,因為本題忽略了字母的大小寫。2.利用字元的ascii值進行驗證 3.採用雙指標的辦法,乙個指向頭,乙個指向尾,同時向中間靠攏,過程中兩指標指向目標不相等則...

驗證回文字串 leetcode

給定乙個字串,驗證它是否是回文串,只考慮字母和數字字元,可以忽略字母的大小寫。說明 本題中,我們將空字串定義為有效的回文串。示例 1 輸入 a man,a plan,a canal panama 輸出 true 示例 2 輸入 race a car 輸出 false c 版本 class solut...