leetcode 214. Shortest Palindrome | 214. 最短回文串(Java)
生活随笔
收集整理的這篇文章主要介紹了
leetcode 214. Shortest Palindrome | 214. 最短回文串(Java)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
題目
https://leetcode.com/problems/shortest-palindrome/
題解
看了 Related Topics - Rolling Hash 下的相關題目,看到了:187. Repeated DNA Sequences 這道題,想到了如下解法。一開始用了個 set 存儲可能的匹配,在一個測試用例上 OOM 了,后來發現不需要 set。
因為回文串包含兩種情況,一種是奇數回文,一種是偶數回文,導致邊界一直沒處理好,所以后來干脆分類討論了。
做完之后看了答案,看來不需要分類討論。
另外,本題解的時間復雜度是 O(n^2),因為字符串比較的復雜度是線性的(對于相同的字符串來說,雖然常量池只存一遍,但運行時創建的字符串是在堆中的,所以并沒有通過比較在常量池中的引用地址來判斷是否相等,而且 equals 方法點進去之后,可以看到是逐個字符比較的。)
想要 O(n) 的話,可以用 KMP,詳見官方答案吧。
總結
以上是生活随笔為你收集整理的leetcode 214. Shortest Palindrome | 214. 最短回文串(Java)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: leetcode 782. Transf
- 下一篇: leetcode 725. Split