18711 字符串去重

思路

  1. **读取输入**:读取字符串的长度和字符串本身。

  2. **使用集合去重**:利用集合(`set`)去除字符串中的重复字母。

  3. **排序**:将集合中的字母按ASCII码从小到大排序。

  4. **输出结果**:将排序后的字母拼接成字符串并输出。

伪代码

```

function remove_duplicates_and_sort(n, s):

if n == 0:

return ""

create a set unique_chars

for each char in s:

add char to unique_chars

convert unique_chars to a list and sort it

join the sorted list into a string

return the resulting string

```

C++代码

cpp 复制代码
#include <iostream>
#include <set>
#include <vector>
#include <algorithm>

using namespace std;

string remove_duplicates_and_sort(int n, const string& s) {
    if (n == 0) {
        return "";
    }

    set<char> unique_chars(s.begin(), s.end());
    vector<char> sorted_chars(unique_chars.begin(), unique_chars.end());
    sort(sorted_chars.begin(), sorted_chars.end());

    return string(sorted_chars.begin(), sorted_chars.end());
}

int main() {
    int n;
    string s;
    cin >> n >> s;

    string result = remove_duplicates_and_sort(n, s);
    cout << result << endl;

    return 0;
}

总结

  1. **问题建模**:将字符串中的字母去重并排序。

  2. **算法选择**:使用集合去重,使用排序算法对集合中的字母进行排序。

  3. **实现细节**:利用集合和向量来存储和处理字母,最后将结果拼接成字符串输出。

  4. **边界条件**:处理字符串长度为0的情况,直接返回空字符串。

相关推荐
蜂蜜黄油呀土豆几秒前
Redis 数据结构详解:从底层实现到应用场景
数据结构·redis·跳表·zset
Bdygsl1 分钟前
数据结构 —— 队列
数据结构
究极无敌暴龙战神X4 分钟前
机器学习相关
人工智能·算法·机器学习
于樱花森上飞舞6 分钟前
【多线程】CAS和哈希表
java·数据结构·java-ee
断剑zou天涯15 分钟前
【算法笔记】有序表——跳表
笔记·算法
编程之路,妙趣横生15 分钟前
数据结构(十二) 位图 & 布隆过滤器
数据结构
咔咔咔的16 分钟前
1351. 统计有序矩阵中的负数
c++
挖矿大亨18 分钟前
c++中的函数调用运算符重载
前端·c++·算法
qq_3106585119 分钟前
webrtc源码走读(一)WebRTC源码结构拆分
服务器·c++·音视频·webrtc
wadesir21 分钟前
Rust语言BM算法实现(从零开始掌握Boyer-Moore字符串搜索算法)
算法·rust·.net