做题认点真啊,题目说测试用例保证元素间不会重叠,结果我还自作聪明的以为要判断是否重叠写了个判断,,,,,无语了,浪费时间,如果不知道自己要做什么就去做真的很没有效率
一个map存从哪里需要替换字符串,替换多少个,一个map存被替换的值
class Solution {
public:
string findReplaceString(string s, vector<int>& indices, vector<string>& sources, vector<string>& targets) {
int k=indices.size();
map<int,int> mp;
map<int,string> mp2;
for(int i=0;i<k;i++)
{
string source=sources[i];
int indice=indices[i];
string tmp=s.substr(indice, source.size());
string target=targets[i];
if (tmp==source)
{
mp[indice]=source.size();
mp2[indice]=target;
}
}
string ans;
for(int i=0;i<s.size();)
{
int len=mp[i];
if(len==0)
{
ans+=s[i];
i++;
}
else
{
ans+=mp2[i];
i+=len;
}
}
return ans;
}
};