Detect Pattern of Length M Repeated K or More Times LeetCode solution in C++

1
class Solution {
2
public:
3
bool containsPattern(vector<int> &arr, int m, int k) {
4
unordered_map<string, vector<int>> ump;
5
string num = "";
6
for (int i = 0; i < arr.size(); ++i) num += to_string(arr[i]);
7
for (int i = 0; i <= num.length() - m; ++i) {
8
string str = num.substr(i, m);
9
ump[str].push_back(i);
10
}
11
for (auto it = ump.begin(); it != ump.end(); ++it) {
12
if (it->second.size() >= k) {
13
bool flag = true;
14
for (int i = 1; i < it->second.size(); ++i) {
15
if (it->second[i] - it->second[i - 1] < m) flag = false;
16
}
17
if (flag == true) return true;
18
}
19
}
20
return false;
21
}
22
};

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0