[Swift-2019力扣杯春季决赛]3. 最长重复子串
发布时间:2020-12-14 04:51:19 所属栏目:百科 来源:网络整理
导读:给定字符串? S ,找出最长重复子串的长度。如果不存在重复子串就返回? 0 。 示例 1: 输入:"abcd"输出:0解释:没有重复子串。 示例 2: 输入:"abbaba"输出:2解释:最长的重复子串为 "ab" 和 "ba",每个出现 2 次。 示例 3: 输入:"aabcaabdaab"输出:3
给定字符串? 示例 1: 输入:"abcd" 输出:0 解释:没有重复子串。 示例 2: 输入:"abbaba" 输出:2 解释:最长的重复子串为 "ab" 和 "ba",每个出现 2 次。 示例 3: 输入:"aabcaabdaab" 输出:3 解释:最长的重复子串为 "aab",出现 3 次。 示例 4: 输入:"aaaaa" 输出:4 解释:最长的重复子串为 "aaaa",出现 2 次。 提示:
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)..<n 10 { 11 if arrS[i] == arrS[j] 12 { 13 lcp[i][j] = lcp[i + 1][j + 1] + 1 14 } 15 else 16 { 17 lcp[i][j] = 0 18 } 19 ans=max(ans,lcp[i][j]) 20 } 21 } 22 return ans 23 } 24 } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |