删除重复字符
题目描述
本题要求编写程序,将给定字符串去掉重复的字符后,按照字符ASCII码顺序从小到大排序后输出。
输入
输入是一个以回车结束的非空字符串(少于80个字符)。
输出
输出去重排序后的结果字符串。
ACODE过啦
独有针对有序
for (int i = 0; i <= len - 1; i++) {
int f = 1;
for (int k = 0; k < strlen(ar); ++k) {
if (arr[i] == ar[k]) f = 0;
}
if (f) {
ar[j] = arr[i];
j++;
}
}
ar[j] = NULL;
char tmp;
for (int i = 0; i < strlen(ar); ++i) {
for (int k = 0; k < strlen(ar); ++k) {
if(ar[k]<ar[k-1]) {
tmp = ar[k - 1];
ar[k - 1] = ar[k];
ar[k] = tmp;
}
}
}
char arr[100];
gets(arr);
int len = strlen(arr);
vector<char> vec ;
for (int i = 0; i < len; ++i)
vec.push_back(arr[i]);
auto pos = unique(vec.begin(), vec.end());
vec.erase(pos, vec.end());
vec.erase(pos, vec.end());
sort(vec.begin(),vec.end());
for(char v : vec) ::printf("%c",v);
char arr[100];
gets(arr);
int len = strlen(arr);
sort(arr,arr+len);
len= unique(arr,arr+len)-arr;
for (int i = 0; i < len; ++i) ::printf("%c",arr[i]);