[Leetcode][第459题][JAVA][重复的字符串][子串][匹配]
生活随笔
收集整理的這篇文章主要介紹了
[Leetcode][第459题][JAVA][重复的字符串][子串][匹配]
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
【問題描述】[中等]
【解答思路】
1. 枚舉
找出能整除的子串長度,再用substring遍歷匹配即可
時間復雜度:O(N^2) 空間復雜度:O(1)
優化 子串 flag
class Solution {public boolean repeatedSubstringPattern(String s) {for(int i = 1; i < s.length(); ++i){if(s.length()%i == 0){String t = s.substring(0, i);boolean flag = true;for(int j = i; j + i <= s.length(); j += i){if(!t.equals(s.substring(j, j + i))){flag = false;break;}}if(flag) return true;}}return false;} }優化 逐個比較
2. 字符串匹配
class Solution {public boolean repeatedSubstringPattern(String s) {return (s + s).indexOf(s, 1) != s.length();} }【總結】
1. 擴展思路 KMP算法
2.思路二正確性證明
3.優化細節
3.1 子串長度至多等于原字符串除以2
3.2 flag標志+ break提前終止
轉載鏈接:https://leetcode-cn.com/problems/repeated-substring-pattern/solution/zhong-fu-de-zi-zi-fu-chuan-by-leetcode-solution/
參考鏈接:https://leetcode-cn.com/problems/repeated-substring-pattern/solution/zhong-fu-de-zi-zi-fu-chuan-by-leetcode-solution/
總結
以上是生活随笔為你收集整理的[Leetcode][第459题][JAVA][重复的字符串][子串][匹配]的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: [Leetcode][第410题][JA
- 下一篇: npm下载axios