给定字符串 S
,找出最长重复子串的长度。如果不存在重复子串就返回 0
。
示例 1:
输入:"abcd"输出:0解释:没有重复子串。
示例 2:
输入:"abbaba"输出:2解释:最长的重复子串为 "ab" 和 "ba",每个出现 2 次。
示例 3:
输入:"aabcaabdaab"输出:3解释:最长的重复子串为 "aab",出现 3 次。
示例 4:
输入:"aaaaa"输出:4解释:最长的重复子串为 "aaaa",出现 2 次。
提示:
字符串S
仅包含从 ‘a‘
到 ‘z‘
的小写英文字母。 1 <= S.length <= 1500
920 ms
1 class Solution { 2 var lcp:[[Int]] = [[Int]](repeating:[Int](repeating:0,count:1505),count:1505) 3 func longestRepeatingSubstring(_ S: String) -> Int { 4 var n:Int = S.count 5 var ans:Int = 0 6 var arrS:[Character] = Array(S) 7 for i in strIDe(from:n - 1,through:0,by:-1) 8 { 9 for j in (i + 1)..<n10 {11 if arrS[i] == arrS[j]12 {13 lcp[i][j] = lcp[i + 1][j + 1] + 114 }15 else16 {17 lcp[i][j] = 018 }19 ans=max(ans,lcp[i][j])20 } 21 }22 return ans 23 }24 }总结
以上是内存溢出为你收集整理的[Swift-2019力扣杯春季决赛]3. 最长重复子串全部内容,希望文章能够帮你解决[Swift-2019力扣杯春季决赛]3. 最长重复子串所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)