Skip to content

Latest commit

 

History

History
71 lines (58 loc) · 1.87 KB

File metadata and controls

71 lines (58 loc) · 1.87 KB

1668. Maximum Repeating Substring

For a string sequence, a string word is k-repeating if word concatenated k times is a substring of sequence. The word's maximum k-repeating value is the highest value k where word is k-repeating in sequence. If word is not a substring of sequence, word's maximum k-repeating value is 0.

Given strings sequence and word, return the maximum k-repeating value of word in sequence.

Example 1:

Input: sequence = "ababc", word = "ab"
Output: 2
Explanation: "abab" is a substring in "ababc".

Example 2:

Input: sequence = "ababc", word = "ba"
Output: 1
Explanation: "ba" is a substring in "ababc". "baba" is not a substring in "ababc".

Example 3:

Input: sequence = "ababc", word = "ac"
Output: 0
Explanation: "ac" is not a substring in "ababc".

Constraints:

  • 1 <= sequence.length <= 100
  • 1 <= word.length <= 100
  • sequence and word contains only lowercase English letters.

Solutions (Python)

1. Solution

class Solution:
    def maxRepeating(self, sequence: str, word: str) -> int:
        i = 0
        k = 0

        while i + (k + 1) * len(word) <= len(sequence):
            if sequence[i:i + (k + 1) * len(word)] == (k + 1) * word:
                k += 1
            else:
                i += 1

        return k

Solutions (Ruby)

1. Solution

# @param {String} sequence
# @param {String} word
# @return {Integer}
def max_repeating(sequence, word)
  i = 0
  k = 0

  while i + (k + 1) * word.length <= sequence.length
    if sequence[i...i + (k + 1) * word.length] == word * (k + 1)
      k += 1
    else
      i += 1
    end
  end

  k
end