删除重复字符.C

删除重复字符

题目描述

本题要求编写程序,将给定字符串去掉重复的字符后,按照字符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]);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值