去掉字符串中重复的字符并排序

来源:互联网 发布:供应商管理商业数据库 编辑:程序博客网 时间:2024/05/21 10:54

第二题:去除重复字符并排序
运行时间限制:无限制
内容限制: 无限制
输入: 字符串
输出: 去除重复字符并排序的字符串
样例输入: aabcdefff
样例输出: abcdef

  • 方法1
#define _CRT_SECURE_NO_DEPRECATE#include <iostream>#include <string>#include <algorithm>using namespace std;/** * 去掉字符串中重复的字符并排序 */int main(){    string input;    while (cin>>input)    {        int count = 0; // 统计有多少个空格        for (int i = 0; i < input.size(); i++)        {            for (int j = i+1; j < input.size(); j++)            {                if (input[i] == ' ')                    break;                if (input[i] == input[j])                {                    input[j] = ' ';                    count++;                }            }        }        int newsize = input.size() - count;        string str(newsize,'0');  //创建一个长为newsize,用‘0’填充的字符串        int j = 0;        for (int i = 0; i < input.size(); i++)        {            if (input[i] != ' ')            {                str[j] = input[i];                j++;            }           }        sort(str.begin(), str.end());        cout << str<<endl;    }}

还是人家写的好http://blog.csdn.net/hackbuteer1/article/details/39253767

  • 方法2
#include <iostream>#include <vector>#include <algorithm>using namespace std;int main(){    string input;    cin >> input;    sort(input.begin(),input.end());    input.erase(unique(input.begin(),input.end()),input.end());    cout << input <<endl;    return 0;}
0 0
原创粉丝点击