Untitled
unknown
plain_text
a year ago
1.1 kB
4
Indexable
class Solution { public: string findReplaceString(string s, vector<int>& indices, vector<string>& sources, vector<string>& targets) { int n = indices.size(); string ns = s; vector<pair<int,int>> v; for(int i=0;i<n;i++) { v.push_back({indices[i],i}); } sort(v.begin(),v.end()); int shift = 0; for(int i=0;i<n;i++) { int j = v[i].second; int l = sources[j].size(); // if(s.size()-v[i].first<l) continue; string t = s.substr(v[i].first+shift,l); // cout<<j<<" "<<sources[j]<<" "<<s<<" "<<t<<endl; if(t==sources[j]) { s = s.substr(0,v[i].first+shift) + targets[j] + s.substr(v[i].first+shift+l); shift += (targets[j].size() - sources[j].size()); } } return s; // for(int i=0;i<n;i++) { // int l = sources.size(); // if(s.size()-indices[i]<l) continue; // string t = s.substring(indices[i],l); // if(t==sources[i]) { // ns = // } // } } };
Editor is loading...
Leave a Comment