输入两个字符串,从第一字符串中删除第二个字符串中所有的字符。例如,输入”They are students.”和”aeiou”,则删除之后的第一个字符串变成”Thy r stdnts.”
题目:输入两个字符串,从第一字符串中删除第二个字符串中所有的字符。例如,输入”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.”相关推荐
- 输入两个字符串,从第一字符串中删除第二个字符串中所有的字符。 例如,输入”They are students.”和”aeiou”,则删除之后的第一个字符串变成”Thy r stdnts.”
1.题目 输入两个字符串,从第一字符串中删除第二个字符串中所有的字符. 例如,输入"They are students."和"aeiou",则删除之后的第一个字 ...
- 输入两个字符串,从第一字符串中删除第二个字符串中所有的字符。例如,输入 ”They are students.” 和 ”aeiou” ,则删除之后的第一个字符串变成 ”Thy r stdnts.”
题目 输入两个字符串,从第一字符串中删除第二个字符串中所有的字符.例如,输入 "They are students." 和 "aeiou" ,则删除之后的第一个 ...
- 输入两个自然数min,max,计算、输出[min,max]中的超级素数的个数#C语言
题目:请编写程序,输入两个自然数min,max,计算.输出[min,max]中的超级素数的个数 超级素数: 一个素数,依次从低位去掉一位,二位,--,若所得的各数仍都是素数,则称超级素数. 例如:73 ...
- java 以某某结尾_Java中删除第一个集合中以某某开头的元素,删除第二个集合中以某某结尾的元素,并合并成一个集合...
import java.util.ArrayList; import java.util.List; public class Test { public static void main(Strin ...
- 管理系统中计算机应用第二章,管理系统中计算机应用第二章.doc
管理系统中计算机应用第二章.doc 第二章 企业管理的信息化平台 一.单项选择题(本大题共30小题,每小题1分,共30分) 1.从理论上分析,传统的IP地址(IPv4)最多可以访问的用户数是( ) A ...
- C++实现输入两个字符串,从第一字符串中删除第二个字符串中所有的字符
一定要注意一点就是: char* p是一个指针,根本没分配内存,他指向的"abc123ABC" 是只读的,不能改变,你在下面给他赋值肯定是错的 而char p[]是一个数组,已经分 ...
- 输入两个字符串,从第一个字符串中删除第二个字符串中所有的字符
作者:小 琛 欢迎转载,请标明出处 题目: 输入两个字符串,从第一个字符串中删除第二个字符串中所有的字符 例如,输入str1为" They are students." 和str2 ...
- python编程—输入两个字符串,从第一字符串中删除第二个字符串中所有的字符
题目描述: 输入两个字符串,从第一字符串中删除第二个字符串中所有的字符.例 如,输入"They are students."和"aeiou", 则删除之后的第一 ...
- Python Level 4 程序题:输入两个整数,倒序输出
[创作平台] 肥猴编程 [问题描述] 输入两个整数,倒序输出 [输入格式] 输入两个整数,整数之间用一个空格隔开 [输出格式] 倒序输出这个两个整数,整数之间用一个空格隔开 [输入输出样例 1] [数 ...
最新文章
- golang中文文档_Golang 标准库 限流器 time/rate 设计与实现
- flutter分平台主题定制
- SQLite 语法(http://www.w3cschool.cc/sqlite/sqlite-syntax.html)
- 2008_11_05_星期三
- 怎么在php登录首页添加样式,首页登录后怎么在首页显示用户名以及隐藏登录框?...
- 通过OracleDataReader来读取BLOB类型的数据 (转载)
- python和c 的区别-Python与C语言有什么区别?
- 用井字游戏理解 Minimax 算法
- Java基础教程——字符流
- python 002 __小斌文档 | ipython的基本使用
- 企业邮箱邮件的服务器地址是什么?企业邮箱服务器出错怎么办?
- 千人千面算法java实现_推荐算法-recommend_system
- SRT软体机器人:等风来不如追风去,“万米蓝海”的探索才刚开始
- 2017年Go语言入门教程-徐培成-专题视频课程
- 开启Fluter基础之旅二-------Future再论、常用组件、Material Design风格组件学习
- 通达信公式改写成python代码的最简实现方式
- Uber的优劣势分析
- 推荐系统(1)——先做一个出来(先实战,后理论)
- 苹果手机处理器_外媒发布2020手机处理器性能天梯榜:苹果A13、骁龙865分列一二位...
- 【待解决的难题】在网页端下载淘宝直播视频