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.

&nbsp;
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". 


&nbsp;
Constraints:


	1 &lt;= sequence.length &lt;= 100
	1 &lt;= word.length &lt;= 100
	sequence and word&nbsp;contains only lowercase English letters.


class Solution:
    def maxRepeating(self, sequence: str, word: str) -> int:
        if word not in sequence:
            return 0

        left = 1
        right = len(sequence) // len(word)
        while left <= right:
            mid = (left + right) // 2
            if word * mid in sequence:
                left = mid + 1
            else:
                right = mid - 1

        return left - 1
class Solution {
    public int maxRepeating(String s, String w) {
        if(w.length()>s.length()) return 0;
        int ans=0;
        StringBuilder sb=new StringBuilder("");
        while(sb.length()<=s.length()){
            sb.append(w);
            if(s.contains(sb)) ans++;
            else break;
        }
        return ans;
    }
}
class Solution {
public:
	int maxRepeating(string sequence, string word) {
		int k = 0;
		string temp = word;

		while(sequence.find(temp) != string::npos){
			temp += word;
			k++;
		}

		return k;
	}
};
var maxRepeating = function(sequence, word) {
	let result = 0;

	while (sequence.includes(word.repeat(result + 1))) {
		result += 1;
	};
	return result;
};
Maximum Repeating Substring