Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class Solution {
- public:
- bool isSubsequence(string s, string t) {
- unordered_map <char , vector <int>> char_idx;
- for (int i = 0 ; i < t.size(); i++)
- {
- char c = t[i];
- char_idx[c].push_back(i);
- }
- int last = -1;
- for (int i = 0 ; i < s.size(); i++)
- {
- char c = s[i];
- vector <int> vec;
- if (char_idx.find(c) != char_idx.end()) vec = char_idx[c];
- else return false;
- int first_idx = upper_bound(vec.begin(), vec.end(), last) - vec.begin();
- if (first_idx == vec.size())
- return false;
- last = vec[first_idx];
- }
- return true;
- }
- };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement