题目:输入两个字符串,从第一字符串中删除第二个字符串中所有的字符。例如,输入”They are
students.”和”aeiou”,则删除之后的第一个字符串变成”Thy r stdnts.”

输入描述:
每个测试输入包含2个字符串
输出描述:
输出删除后的字符串
示例1:
输入
They are students. aeiou
输出
Thy r stdnts

分析:

方法(1)对第二个字符串做映射,第一个字符串判断要不要删时,是O(1)的时间复杂度查找,但是调用erease()方法删除每次需要挪动数据,我们有一种好的是方法(2)是用两个指针,一个用来遍历s1,一个用来过滤需要删除的begin滤过的都是要留下的,但是要注意string,通过[]访问添加\0是不管用的。

void delete_str1(string& s1, const string& s2)
{int count[256] = { 0 };int i = 0;while (s2[i]!='\0'){count[s2[i]]++;//用s2中的字符作为下标的count数组对应元素加1i++;}i = 0;while (s1[i] != '\0'){if (count[s1[i]] != 0)//s1中字符在s2存在,则需要删除{s1.erase(i,1);//当然这里也可以用一个新的字符串接收要留下来的字符ret+=s1[i];(count[s1[i]] 0= 0)}else{i++;}}
}
void delete_str2(string& s1, const string& s2)
{int count[256] = { 0 };int i = 0;while (s2[i] != '\0'){count[s2[i]]++;//用s2中的字符作为下标的count数组对应元素加1i++;}i = 0;int begin = 0;int end = 0;while (s1[end] != '\0'){if (count[s1[end]] == 0)//需要保留的{s1[begin] = s1[end];begin++;}end++;}/*s1[begin] = '\0';cout << begin << endl;*///注意,对于string s("12345"),s[2]='\0',//cout<<s<<endl; //结果是12 45,但是string s("12\0345"),cout<<s<<endl;//结果是12s1=s1.substr(0,begin);
}

输入两个字符串,从第一字符串中删除第二个字符串中所有的字符。例如,输入”They are students.”和”aeiou”,则删除之后的第一个字符串变成”Thy r stdnts.”相关推荐

  1. 输入两个字符串,从第一字符串中删除第二个字符串中所有的字符。 例如,输入”They are students.”和”aeiou”,则删除之后的第一个字符串变成”Thy r stdnts.”

    1.题目 输入两个字符串,从第一字符串中删除第二个字符串中所有的字符. 例如,输入"They are students."和"aeiou",则删除之后的第一个字 ...

  2. 输入两个字符串,从第一字符串中删除第二个字符串中所有的字符。例如,输入 ”They are students.” 和 ”aeiou” ,则删除之后的第一个字符串变成 ”Thy r stdnts.”

    题目 输入两个字符串,从第一字符串中删除第二个字符串中所有的字符.例如,输入 "They are students." 和 "aeiou" ,则删除之后的第一个 ...

  3. 输入两个自然数min,max,计算、输出[min,max]中的超级素数的个数#C语言

    题目:请编写程序,输入两个自然数min,max,计算.输出[min,max]中的超级素数的个数 超级素数: 一个素数,依次从低位去掉一位,二位,--,若所得的各数仍都是素数,则称超级素数. 例如:73 ...

  4. java 以某某结尾_Java中删除第一个集合中以某某开头的元素,删除第二个集合中以某某结尾的元素,并合并成一个集合...

    import java.util.ArrayList; import java.util.List; public class Test { public static void main(Strin ...

  5. 管理系统中计算机应用第二章,管理系统中计算机应用第二章.doc

    管理系统中计算机应用第二章.doc 第二章 企业管理的信息化平台 一.单项选择题(本大题共30小题,每小题1分,共30分) 1.从理论上分析,传统的IP地址(IPv4)最多可以访问的用户数是( ) A ...

  6. C++实现输入两个字符串,从第一字符串中删除第二个字符串中所有的字符

    一定要注意一点就是: char* p是一个指针,根本没分配内存,他指向的"abc123ABC" 是只读的,不能改变,你在下面给他赋值肯定是错的 而char p[]是一个数组,已经分 ...

  7. 输入两个字符串,从第一个字符串中删除第二个字符串中所有的字符

    作者:小 琛 欢迎转载,请标明出处 题目: 输入两个字符串,从第一个字符串中删除第二个字符串中所有的字符 例如,输入str1为" They are students." 和str2 ...

  8. python编程—输入两个字符串,从第一字符串中删除第二个字符串中所有的字符

    题目描述: 输入两个字符串,从第一字符串中删除第二个字符串中所有的字符.例 如,输入"They are students."和"aeiou", 则删除之后的第一 ...

  9. Python Level 4 程序题:输入两个整数,倒序输出

    [创作平台] 肥猴编程 [问题描述] 输入两个整数,倒序输出 [输入格式] 输入两个整数,整数之间用一个空格隔开 [输出格式] 倒序输出这个两个整数,整数之间用一个空格隔开 [输入输出样例 1] [数 ...

最新文章

  1. golang中文文档_Golang 标准库 限流器 time/rate 设计与实现
  2. flutter分平台主题定制
  3. SQLite 语法(http://www.w3cschool.cc/sqlite/sqlite-syntax.html)
  4. 2008_11_05_星期三
  5. 怎么在php登录首页添加样式,首页登录后怎么在首页显示用户名以及隐藏登录框?...
  6. 通过OracleDataReader来读取BLOB类型的数据 (转载)
  7. python和c 的区别-Python与C语言有什么区别?
  8. 用井字游戏理解 Minimax 算法
  9. Java基础教程——字符流
  10. python 002 __小斌文档 | ipython的基本使用
  11. 企业邮箱邮件的服务器地址是什么?企业邮箱服务器出错怎么办?
  12. 千人千面算法java实现_推荐算法-recommend_system
  13. SRT软体机器人:等风来不如追风去,“万米蓝海”的探索才刚开始
  14. 2017年Go语言入门教程-徐培成-专题视频课程
  15. 开启Fluter基础之旅二-------Future再论、常用组件、Material Design风格组件学习
  16. 通达信公式改写成python代码的最简实现方式
  17. Uber的优劣势分析
  18. 推荐系统(1)——先做一个出来(先实战,后理论)
  19. 苹果手机处理器_外媒发布2020手机处理器性能天梯榜:苹果A13、骁龙865分列一二位...
  20. 【待解决的难题】在网页端下载淘宝直播视频

热门文章

  1. Google Weather API 参考文档
  2. 【NPR】非真实感渲染实验室
  3. 展锐UIS8310 CAT4物联网模块简介
  4. python例子高考志愿填报系统_Python 助你填写高考志愿
  5. base64图片转换file,并上传到阿里云
  6. 苹果mac休眠快捷键_强烈推荐 10 款免费的Mac 软件!(附下载地址)
  7. HTML字符实体引用
  8. 大电流滑环的安装难不难
  9. 【直播回顾】Hello HarmonyOS应用篇第六课——短视频应用开发
  10. 漫画 | 程序员必须要小心的7个潜规则