1 class Solution 2 { 3 public: 4 bool isSubsequence(string s, string t) 5 { 6 vector<int> WordList[26]; 7 for(int i = 0;i < t.size();i ++) 8 { 9 WordList[t[i]-'a'].emplace_back(i); 10 } 11 12 int pre_index = 0; 13 for(int i = 0;i < s.size();i ++) 14 { 15 auto v_ptr = lower_bound(WordList[s[i]-'a'].begin(),WordList[s[i]-'a'].end(),pre_index); 16 if(v_ptr == WordList[s[i]-'a'].end()) 17 return false; 18 pre_index = *v_ptr+1; 19 } 20 return true; 21 } 22 };