Ai
1 Star 2 Fork 5

LilithSangreal/LeetCode-Solutions

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
find-and-replace-in-string.cpp 810 Bytes
一键复制 编辑 原始数据 按行查看 历史
kamyu 提交于 2018-05-13 23:15 +08:00 . Update find-and-replace-in-string.cpp
// Time: O(n + m), m is the number of targets
// Space: O(n)
class Solution {
public:
string findReplaceString(string S, vector<int>& indexes, vector<string>& sources, vector<string>& targets) {
vector<pair<int, string>> bucket(S.size());
for (int i = 0; i < indexes.size(); ++i) {
if (S.find(sources[i], indexes[i]) == indexes[i]) {
bucket[indexes[i]] = {sources[i].size(), targets[i]};
}
}
string result;
int last = 0;
for (int i = 0; i < S.length(); ++i) {
if (bucket[i].first) {
result += bucket[i].second;
last = i + bucket[i].first;
} else if (i >= last) {
result.push_back(S[i]);
}
}
return result;
}
};
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/LilithSangreal/LeetCode-Solutions.git
git@gitee.com:LilithSangreal/LeetCode-Solutions.git
LilithSangreal
LeetCode-Solutions
LeetCode-Solutions
master

搜索帮助