1
class Solution {
2
public:
3
vector<int> movesToStamp(string S, string T) {
4
if (S == T) return {0};
5
int slen = S.size(), tlen = T.size() - slen + 1, i, j;
6
vector<int> ans;
7
bool tdiff = true, sdiff;
8
while (tdiff)
9
for (i = 0, tdiff = false; i < tlen; i++) {
10
for (j = 0, sdiff = false; j < slen; j++)
11
if (T[i + j] == '*')
12
continue;
13
else if (T[i + j] != S[j])
14
break;
15
else
16
sdiff = true;
17
if (j == slen && sdiff) {
18
for (j = i, tdiff = true; j < slen + i; j++) T[j] = '*';
19
ans.push_back(i);
20
}
21
}
22
for (i = 0; i < T.size(); i++)
23
if (T[i] != '*') return {};
24
reverse(ans.begin(), ans.end());
25
return ans;
26
}
27
};

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0