专栏首页Don的成长史删除重复字符

删除重复字符

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

本文链接:https://blog.csdn.net/weixin_42449444/article/details/86186192

题目描述:

牛牛有一个由小写字母组成的字符串s,在s中可能有一些字母重复出现。比如在"banana"中,字母'a'和字母'n'分别出现了三次和两次。 但是牛牛不喜欢重复。对于同一个字母,他只想保留第一次出现并删除掉后面出现的字母。请帮助牛牛完成对s的操作。

输入描述:

输入包括一个字符串s,s的长度length(1 ≤ length ≤ 1000),s中的每个字符都是小写的英文字母('a' - 'z')

输出描述:

输出一个字符串,表示满足牛牛要求的字符串。

输入样例:

banana

输出样例:

ban

解题思路:

保留第一次出现并删除后面出现的字母,说白了就是每个字母只输出一次。无脑用for-each遍历字符串,map来记录每个字母的出现次数。

AC代码:

#include <bits/stdc++.h>
using namespace std;
 
int main()
{
    map<char,int> m;
    string s;
    cin >> s;
    for(auto it : s)  //for-each遍历字符串
    {
        if(m[it] == 0)  //若这个字符没输出过
        {
            cout << it;
            m[it]++;    //把这个字符记录为已输出
        }
    }
    return 0;
}

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Python-Excel-openpyxl-09-向Excel中写入数据

    系统:Windows 7 语言版本:Anaconda3-4.3.0.1-Windows-x86_64 编辑器:pycharm-community-2016.3....

    zishendianxia
  • Reactor 3快速上手

    Project Reactor(以下简称“Reactor”)与Spring是兄弟项目,侧重于Server端的响应式编程,主要 artifact 是 reacto...

    Java3y
  • 2. SOFAJRaft源码分析—JRaft的定时任务调度器是怎么做的?

    看完这个实现之后,感觉还是要多看源码,多研究。其实JRaft的定时任务调度器是基于Netty的时间轮来做的,如果没有看过Netty的源码,很可能并不知道时间轮算...

    luozhiyun
  • 机器学习与深度学习核心知识点总结

    梯度下降法沿着梯度的反方向进行搜索,利用了函数的一阶导数信息。梯度下降法的迭代公式为:

    Datawhale
  • Python-入门-12-异常处理

    zishendianxia
  • 时序数据库的秘密 —— 快速检索

    Elasticsearch 是通过 Lucene 的倒排索引技术实现比关系型数据库更快的过滤。特别是它对多条件的过滤支持非常好,比如年龄在 18 和 30 之间...

    老钱
  • 链表的实现

    链表分为单向链表、双向链表和循环链表。链表这种数据结构就像是火车车厢一样,每个车厢可以插入到任意的的位置。与数组不同的是,数组的数据存储是连续的存储单元,就好比...

    多云转晴
  • 关联分析(一):频繁项集及规则产生【转载】

    关联分析用于发现隐藏在大型数据集中有意义的联系,属于模式挖掘分析方法,其为人熟知的经典应用当属沃尔玛超市里“啤酒与尿布”的关系挖掘了。关联分析的应用领域非常多,...

    用户6021899
  • 传说中线性时间复杂度的排序算法

    谈到排序该怎么算,直觉上应该都要元素之间进行比较才能排出顺序,比较是不可或缺的,但偏偏有的排序算法可以不用比较,比如传说中的“睡眠排序”(n个线程同时睡觉,按照...

    Jean
  • 看图轻松了解etcd

    用一些图示结合场景和文字轻松了解etcd,文章是针对etcd初学者的,目的是让大家了解etcd是什么、主要在什么场景下使用、etcd集群是怎么工作的以及创建集群...

    KevinYan

扫码关注云+社区

领取腾讯云代金券