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