当前位置: 首页 > news >正文

武汉网站开发建设bt最佳磁力搜索引擎

武汉网站开发建设,bt最佳磁力搜索引擎,广东阳江政府网,网站建设企业类型是什么【LetMeFly】833.字符串中的查找与替换 力扣题目链接:https://leetcode.cn/problems/find-and-replace-in-string/ 你会得到一个字符串 s (索引从 0 开始),你必须对它执行 k 个替换操作。替换操作以三个长度均为 k 的并行数组给出:indices,…

【LetMeFly】833.字符串中的查找与替换

力扣题目链接:https://leetcode.cn/problems/find-and-replace-in-string/

你会得到一个字符串 s (索引从 0 开始),你必须对它执行 k 个替换操作。替换操作以三个长度均为 k 的并行数组给出:indicessources,  targets

要完成第 i 个替换操作:

  1. 检查 子字符串  sources[i] 是否出现在 原字符串 s 的索引 indices[i] 处。
  2. 如果没有出现, 什么也不做 。
  3. 如果出现,则用 targets[i] 替换 该子字符串。

例如,如果 s = "abcd" , indices[i] = 0sources[i] = "ab"targets[i] = "eee" ,那么替换的结果将是 "eeecd"

所有替换操作必须 同时 发生,这意味着替换操作不应该影响彼此的索引。测试用例保证元素间不会重叠

  • 例如,一个 s = "abc" ,  indices = [0,1]sources = ["ab","bc"] 的测试用例将不会生成,因为 "ab""bc" 替换重叠。

在对 s 执行所有替换操作后返回 结果字符串

子字符串 是字符串中连续的字符序列。

 

示例 1:

输入:s = "abcd", indexes = [0,2], sources = ["a","cd"], targets = ["eee","ffff"]
输出:"eeebffff"
解释:
"a" 从 s 中的索引 0 开始,所以它被替换为 "eee"。
"cd" 从 s 中的索引 2 开始,所以它被替换为 "ffff"。

示例 2:

输入:s = "abcd", indexes = [0,2], sources = ["ab","ec"], targets = ["eee","ffff"]
输出:"eeecd"
解释:
"ab" 从 s 中的索引 0 开始,所以它被替换为 "eee"。
"ec" 没有从原始的 S 中的索引 2 开始,所以它没有被替换。

 

提示:

  • 1 <= s.length <= 1000
  • k == indices.length == sources.length == targets.length
  • 1 <= k <= 100
  • 0 <= indexes[i] < s.length
  • 1 <= sources[i].length, targets[i].length <= 50
  • s 仅由小写英文字母组成
  • sources[i]targets[i] 仅由小写英文字母组成

方法一:模拟

首先将“替换信息”indicessourcestargets打包起来,按照indices从小到大排序,记为v

写一个函数equal(s, toCmp, start)用来判断sstart处开始是否与toCmp匹配。

这样,我们只需要用下标 i i i遍历s

  • i i i等于 v v v中待处理的 i n d i c e s indices indices,看字符串 s s s i i i处开始是否与 v v v中待处理的 s o u r c e s sources sources匹配:

    • 若匹配:进行替换(答案加上对应的 t a r g e t s targets targets i i i加上被替换掉的字符串的长度减1)
    • 否则:不进行替换(答案加上 s [ i ] s[i] s[i]
  • 否则:不进行替换(答案加上 s [ i ] s[i] s[i]

  • 时间复杂度 O ( C + n log ⁡ n ) O(C + n\log n) O(C+nlogn),其中 C C C s o u r c e s sources sources t a r g e t s targets targets中字母个数之和, n = l e n ( s o u r c e s ) n=len(sources) n=len(sources)

  • 空间复杂度 O ( C + log ⁡ n ) O(C + \log n) O(C+logn)

AC代码

C++

class Solution {
private:bool equal(string& s, string& toCmp, int start) {  // 返回s从下标start开始,是否与toCmp匹配if (start + toCmp.size() > s.size()) {return false;}for (int i = 0; i < toCmp.size(); i++) {if (s[start + i] != toCmp[i]) {return false;}}return true;}public:string findReplaceString(string& s, vector<int>& indices, vector<string>& sources, vector<string>& targets) {vector<tuple<int, string, string>> v;for (int i = 0; i < indices.size(); i++) {v.push_back({indices[i], sources[i], targets[i]});}sort(v.begin(), v.end(), [](tuple<int, string, string>& a, tuple<int, string, string>& b) {return get<0>(a) < get<0>(b);});string ans;int nowV = 0;for (int i = 0; i < s.size(); i++) {if (nowV < v.size() && get<0>(v[nowV]) == i) {if (equal(s, get<1>(v[nowV]), i)) {ans += get<2>(v[nowV]);i += get<1>(v[nowV]).size() - 1;}else {ans += s[i];}nowV++;}else {ans += s[i];}}return ans;}
};

同步发文于CSDN,原创不易,转载经作者同意后请附上原文链接哦~
Tisfy:https://letmefly.blog.csdn.net/article/details/132289306

http://www.ds6.com.cn/news/785.html

相关文章:

  • 帮客户做网站平台犯法吗近一周热点新闻
  • 做网站什么软件百度学术官网
  • 股票网站怎么做动态表格宁波seo优化排名
  • 网站的动态图怎么做的网站推广优化怎样
  • 创意ppt模板大全东莞网络优化服务商
  • 水利网站建设b站推广网站2024年不用下载
  • 企业网站怎么做优化sku电商是什么意思
  • 青岛住房和城乡建设厅网站首页seo收录查询
  • 多语种网站怎么做搜索引擎排名焊工培训班
  • 深圳网站建设 设计科技百度网站域名
  • 网站推广策划思路是什么网站不收录怎么解决
  • 网站开发需要学营销网络推广方式有哪些
  • 烟台高端网站建设百度搜索使用方法
  • 品牌网站建设 优帮云手机优化大师官网
  • 中国糕点网页设计网站搜索优化推广公司
  • 服务平台型网站中国免费网站服务器下载
  • 网站建设培训个人免费申请网站
  • 莆田做外贸网站搜狗指数官网
  • 龙港哪里有做百度网站的百度推广步骤
  • 巴中微小网站建设案例网站免费推广方式
  • 石家庄建设seo实战培训费用
  • 蜜雪冰城网页设计素材seo工作内容和薪资
  • 苏州网站建设费用超级外链自动发布工具
  • 温州建设网站公司市场营销平台
  • 微网站开发建站流程
  • 成免费的crmdsm镇江优化推广
  • 有自己的域名怎么建立网站临沂头条新闻今日头条
  • 今天开始做女神免费网站我们公司想做网络推广
  • 深圳app定制开发报价单广州网络优化最早的公司
  • 中国互联网企业排名前十名长沙电商优化