删除重复字符没有排序。
保留第一次出现并删除后面出现的字母,说白了就是每个字母只输出一次。无脑用for-each遍历字符串,map来记录每个字母的出现次数。
#include <iostream>
#include<map>
using namespace std;
int main()
{
map<char,int> m;
string s;
cin >> s;
for(auto it : s) //for-each遍历字符串
{
if(m[it] == 0) //若这个字符没输出过
{
cout << it;
m[it]++; //把这个字符记录为已输出
}
}
return 0;
}
排序后的函数
思想:用散列,以空间换时间
#include<iostream>
using namespace std;
const int maxn=10010;
int a[maxn];
int main()
{
char c;
c=getchar();
while(c!='\n')
{
a[c]=1;//使用散列,用空间换时间
c=getchar();
}
for(int i=0;i<128;i++)
{
if(a[i]>0)
{
printf("%c",i);
}
}
return 0;
}