题目(LeetCode #1062)
Given a string S
, find out the length of the longest repeating substring(s). Return 0
if no repeating substring exists.
Example 1:
Input: “abcd”
Output: 0
Explanation: There is no repeating substring.
Example 2:
Input: “abbaba”
Output: 2
Explanation: The longest repeating substrings are “ab” and “ba”, each of which occurs twice.
Example 3:
Input: “aabcaabdaab”
Output: 3
Explanation: The longest repeating substring is “aab”, which occurs 3 times.
Example 4:
Input: “aaaaa”
Output: 4
Explanation: The longest repeating substring is “aaaa”, which occurs twice.
Note:
- The string
S
consists of only lowercase English letters from'a'
-'z'
. 1 <= S.length <= 1500
题解
若 S
中存在长度为 N
的重复字符串,则长度为 N - 1
的重复字符串也必然存在,故可用二分法猜最大长度的方法逼近实际结果。
1 | class Solution { |