校招题1 字符串重排

给定一个原始字符串,统计字符串中各字符出现的次数,并按照ASCII码递增的顺序依次输出。

例:原始字符串为eeefgghh

统计字符串中各字符的出现次数:

e : 3

f  : 1

g : 2

h : 2

重排字符串输出为:efgheghe

说明:给定的原字符串只包含数字和字母,大写字母和小写字母存在区别。

样例输入输出:

eeefgghh

efgheghe

这道题其实在平时的C语言中就有过小模块的训练,一般分为字符串中字符的计数和字符串的重排。计数可以通过设置数组,数组的下标为字符的ASCII码,数组存储的数为对应字符的数量,特别要注意下标的查重。但是C++STL提供的关联容器map使得计数和排序变得格外简单。map的key值用于存放字符,value用于存放对应字符的数量。由于map本身的特性,字符已经默认按照ASCII码递增的方式存放了,接下来需要考虑如何重排字符串。我的想法是通过控制迭代器对value的指向是否大于0,来判断对应字符是否应该输出。由于map是键值匹配关系,设置迭代器it,其中it->first是key值,it->second是value值。当it->second>0时,输出it->first,it后移;否则直接it后移。而当输出一轮字符时,it需要回到起始位置,这时的判断条件应该是it==map.end() && n>0,这里的n指的是剩余字符串的长度。

大功告成,直接上代码:

#include<iostream>
#include<cstring>
#include<map>
using namespace std;int main(){string str;map<char,int> s;getline(cin,str);for(int i=0;i<str.length();i++){s[str[i]]++;}int n=str.length();for(map<char,int>::iterator it=s.begin();;){if(it->second>0){cout<<it->first;it->second --;it++;n--;}else{it++;}if(it==s.end() && n>0) it=s.begin();if(n==0) break;}return 0;} 

输入输出显示:

如有更好方法,请各位大佬指正。

版权声明:本文为博主原创文章,未经博主允许不得转载。https://blog.csdn.net/qq_34563932/article/details/79905124



2018华为校招笔试题相关推荐

  1. 九月十月 阿里 百度 华为 校招笔试题

    九月迅雷,华为,阿里巴巴,最新笔试面试十题 8月15日,百度2道面试题: 1.来自<编程之美>的概率题:一个桶里面有白球.黑球各100个,现在按下述规则取球:的     i .每次从通里面 ...

  2. 2018 美团校招笔试题详解

    栈必考题目 栈和队列必考题目 不选安全性,可以猜出是ABD 操作系统死锁的题目经常考 这题也是一道必考题 二叉树必考题 第一张抽出红的,第二张抽出黑的,概率是P=1/2* 26/51 第一张抽出黑的, ...

  3. 数据分析真题日刷 | 欢聚时代2018校招笔试题-产品经理/数据分析/游戏运营/市场专员 A卷

    今日真题 欢聚时代2018校招笔试题-产品经理/数据分析/游戏运营/市场专员 A卷(来源:牛客网) 题型 客观题:单选5道,不定项选择10道 主观题:问答4道 完成时间 90分钟 牛客网评估难度系数 ...

  4. 武汉光迅科技22校招笔试题(武汉邮科院控股国企上市大厂Python的txt文本处理笔试题)

    武汉光迅科技22校招笔试题(武汉邮科院控股国企上市大厂Python的txt文本处理笔试题) 资源: https://download.csdn.net/download/weixin_53403301 ...

  5. 数据分析真题日刷 | 网易2018实习生招聘笔试题-数据分析实习生

    上周开始实习,博客更新就缓下来了.这是十天前做的套题了,现在拾起来把它再整理整理. 网易数据分析实习生的笔试题,和校招的题目还是有部分重复的,不过难度也不小. 今日真题 网易2018实习生招聘笔试题- ...

  6. 百度2019校招笔试题

    百度2019校招笔试题 1. 探险安排 小明要为n个人计划一次火星的探险,其中一个重要的任务是为每个参与者安排食物.仓库里面有m个能用一天的食物包裹,每个食物包裹有不同的类型ai.每个人每天必须用且只 ...

  7. 华为硬件笔试 通用器件知识2_华为硬件笔试题(最新版)

    <华为硬件笔试题(最新版)>由会员分享,可在线阅读,更多相关<华为硬件笔试题(最新版)(3页珍藏版)>请在人人文库网上搜索. 1.一 选择 13 个题目,没有全部抄下来,涉及的 ...

  8. 关于python类的继承正确的说法是_2017美团点评的运维岗校招笔试题,测测你会几题?...

    原标题:2017美团点评的运维岗校招笔试题,测测你会几题? 1.数据库:以下哪项不是HASH索引的特征? A MySQL不能确定在两个值之间大约有多少行 B 不能使用hash索引来加速ORDER BY ...

  9. 【美团校招笔试题】去除字符串首尾空格,中间多个空格只保留一个

    要求: 这是本人参加美团校招在线考试笔试题,如果此行为违反了美团校招笔试题商业保密性,请与本人联系. 思路:用一个while循环扫描整个字符串,用pStart字符指针指向整个字符串首地址,如果遇到首部 ...

最新文章

  1. spring原理案例-基本项目搭建 01 spring framework 下载 官网下载spring jar包
  2. 一站式学习Wireshark(一):Wireshark基本用法
  3. [H265/HEVC]开源项目
  4. 【原创】PostgreSQL 增量备份详解以及相关示例
  5. 学长毕业日记 :本科毕业论文写成博士论文的神操作20170410
  6. idea中启动RunDashboard
  7. boost::callable_traits的is_const_member的测试程序
  8. mysql 连接openfire_修改openfire数据库连接(转)
  9. 先学python还是ros_ROS入门学习
  10. DevOps到底是什么意思?
  11. Part 3 —— 发布 Go Modules
  12. layer j基本属性
  13. 通过朋友间推广APP,根本不可行
  14. 访问网站时出现Service Unavailable的解决方法
  15. php 将日期转换时间戳,php怎么将日期转换为时间戳?
  16. IBM Tivoli Management Framework默认设置漏洞
  17. 豆瓣上的一条关于泰坦尼克的影评1
  18. 如何读懂和利用你的微生物多样性测序结果?
  19. 我国会计计算机的发展历程,会计的发展历程是什么
  20. 邮件经常失败回弹很糟心?一定要知道这几个小知识

热门文章

  1. 支付宝当面付申请设置教程,支持个人用户
  2. 流放者柯南联机显示无法链接服务器,《流放者柯南》联机疑难问题解答
  3. DEEPLIZARD强化学习2----预期收益Expected Return
  4. Caused by: java.io.FileNotFoundException: class path resource [applicationContext.xml] cannot be ope
  5. jvm attach原理分析总结~~~
  6. Spring Cloud Eureka整合 Seata 实现分布式事务
  7. 蓝桥杯2015年第六届真题-穿越雷区
  8. 蓝桥杯javaB组穿越雷区
  9. 2008最新鼠年春节拜年短信大全
  10. python下载油管、B站视频的方法