View Repeated Substring Pattern on LeetCode
Statistics
Time Spent Coding
2 minutes
Time Complexity
O(n) - The input string s
is duplicated and iterated multiple times, but big-O does not consider this when calculating time complexity, resulting in the O(n) time complexity.
Space Complexity
O(n) - The input string must be duplicated, resulting in the O(n) space complexity. Technically, it stores n * 2
characters since s
is repeated twice in the duplicated string, but as stated before, this factor is not considered.
Runtime Beats
63.28% of other submissions
Memory Beats
72.18% of other sumbissions
Explanation
The algorithm attempts to find the original input string within the duplicated string repeated
. To avoid false positives, remove the first and last character from the repeated
string. This allows for a single unique repeated pattern to be found. But, if the string is inconsistent with repeating substrings, removing the first and last characters will cause the program to return false.
Solution
1
2
3
4
class Solution:
def repeatedSubstringPattern(self, s: str) -> bool:
repeated = s + s
return s in repeated[1:]