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的情况,直接返回空字符串。

相关推荐
怀九日3 分钟前
单片机(学习)2024.10.9
开发语言·汇编·c++·单片机·学习·指令·
m0_6356474823 分钟前
Qt打开excel文件,并读取指定单元格数据
开发语言·c++·qt·excel
上理考研周导师1 小时前
【数字图像处理】第2章 数字图像处理基础,彩色图像,灰度图像,图像的采样与量化,图像文件格式,灰度直方图
算法
reverie.Ly1 小时前
从0开始linux(12)——命令行参数与环境变量
android·linux·c++
Antonio9151 小时前
【Codeforces】CF 2005 C
开发语言·c++·算法
月夕花晨3742 小时前
C++学习笔记(51)
c++·笔记·学习
小羊在奋斗2 小时前
【C++】二叉搜索树+变身 = AVL树
java·开发语言·c++·机器学习
꧁༺❀氯ྀൢ躅ྀൢ❀༻꧂2 小时前
C语言期中自测试卷
c语言·算法·基础题
三玖诶3 小时前
第三弹:C++ 中的友元机制与运算符重载详解
开发语言·c++·运算符重载·友元
管家罢了4 小时前
C++-容器适配器- stack、queue、priority_queue和仿函数
开发语言·数据结构·c++