您的位置:首页 > 理论基础 > 数据结构算法

微软公司等数据结构+算法面试100题-63题解

2012-11-21 09:09 288 查看
微软公司等数据结构+算法面试100题(第1-100题)

63.在字符串中删除特定的字符(字符串)。

题目:输入两个字符串,从第一字符串中删除第二个字符串中所有的字符。

例如,输入”They are students.”和”aeiou”,

则删除之后的第一个字符串变成”Thy r stdnts.”。

分析:这是一道微软面试题。在微软的常见面试题中,与字符串相关的题目占了很大的一部分,

因为写程序操作字符串能很好的反映我们的编程基本功。

看了前人的解法,加深了对快慢指针的理解

/article/8338868.html

然后自己写了个简单版本的,省略了将字符转换成索引后快速将当前字符与待删除序列匹配,从而判断其是否需要删除的过程。

这里假设待删除的字符串是t ="there are ", 要把其中的字符 'e' 删掉。代码如下:

输出结果是" thr ar"
#include<iostream>
using namespace std;
int main(void)
{
char t[]="there are";
int i=0,j=0;
while(t[i]!='e' && t[i]!='\0')//找到第一个'e'出现的位置
i++;
j=i;i++;
while(t[i]!='\0'){//快慢标记去掉字符'e',并将其它字符顺序前移
if(t[i]!='e'){
t[j++]=t[i++];
}
else i++;
}
t[j]='\0';
cout<<t<<endl;
return 0;
}

                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: