3496:删除字符并压缩字符串
描述
给出一个字符串,里面除了字母和数字之外还有其它字符。现在我们希望先删除字符串中除字母以外的其它字符。然后对于剩下的字符串,每个字母只保留其第一次出现的位置的字母,此时不区分大小写。请输出最后字符串的结果。
输入
一个字符串,由大小写字母,数字和其它字符组成
输出
最后字符串的结果
输入样例 1
aB1C#@d23a!bcd##
输出样例1
aBCd
代码如下:
#include<bits/stdc++.h>
using namespace std;
int main(){
int t[128]={0},i;
string str;
getline(cin,str);//输入一行
for(i=0; i<str.size(); i++){
if(str[i]>='a'&& str[i]<='z'){
t[str[i]]++;//装桶
}else if(str[i]>='A'&& str[i]<='Z'){
t[str[i]-'A'+'a']++;//装桶
}
}
for(i=0; i<str.size(); i++){
if(str[i]>='a'&& str[i]<='z'){
if(t[str[i]]>0){
cout<<str[i];
t[str[i]]=0;//置为o去重
}
}else if(str[i]>='A'&& str[i]<='Z'){
if(t[str[i]-'A'+'a']>0){
cout<<str[i];
t[str[i]-'A'+'a']=0;//置为o去重
}
}
}
return 0;
}