华为机试HJ26:字符串排序
作者:翟天保Steven
版权声明:著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处
题目描述:
编写一个程序,将输入字符串中的字符按如下规则排序。
规则 1 :英文字母从 A 到 Z 排列,不区分大小写。
如,输入: Type 输出: epTy
规则 2 :同一个英文字母的大小写同时存在时,按照输入顺序排列。
如,输入: BabA 输出: aABb
规则 3 :非英文字母的其它字符保持原来的位置。
如,输入: By?e 输出: Be?y
注意有多组测试数据,即输入有多行,每一行单独处理(换行符隔开的表示不同行)
输入描述:
输入字符串
输出描述:
输出字符串
示例:
输入:A Famous Saying: Much Ado About Nothing (2012/8).
输出:A aaAAbc dFgghh: iimM nNn oooos Sttuuuy (2012/8).
解题思路:
首先,构建一个vector组record存放每个字母对应的vector,比如record[0]就是a或者A,遍历字符串,将大小写字母的字符标记出来,令a[i]=1,即表示该位置是需要参与排序的,然后依次将所有字母字符存放在各自所属的字母vector中;再遍历一次字符串,若a[i]=1,则往该位置放入record存放的字母,先放record[0],也就是a或者A,放完0再放1、2、3,依次类推,直到所有字母放置后,字符串也实现了题目要求的排序。
测试代码:
#include <iostream>
#include <vector>
using namespace std;
int main()
{string in;while(getline(cin,in)){string temp=in;int a[10000]={0};vector<vector<char>> record(100);for(int i=0;i<in.size();++i){if(in[i]>='A'&&in[i]<='Z'){a[i]=1;record[in[i]-'A'].push_back(in[i]);}else if(in[i]>='a'&&in[i]<='z'){a[i]=1;record[in[i]-'a'].push_back(in[i]);}}int i=0,j=0;for(int t=0;t<in.size();++t){if(a[t]==1){while(j==record[i].size()){i++;j=0;}temp[t]=record[i][j];j++;}}cout<<temp<<endl;}return 0;
}
华为机试HJ26:字符串排序相关推荐
- 华为机试:字符串比较
题目来源 华为机试:字符串比较 题目描述 题目解析 思路: 先对A[].B[]进行预处理,生成C[] ,其中 C[i] = std::abs(A[i] - B[i]); 然后我们只看C,这样问题就转换 ...
- 华为机试-蛇形字符串
题目描述: 输入一个字符串(不含空格), 请寻找输入中包含所有蛇形字符串. 蛇形字符串定义: 1.蛇形字符串由连续字符对组成,其特点如下: 1.1 字符对定义:字符对由同一字母的大写和小写组成(前大后 ...
- 【带你刷华为机试】——字符串分割
目录 题目:HJ4 字符串分割 题目链接:字符串分割 题目描述: 输入描述: 输出描述: 示例 解题思路: 解法: [前言]先干了生活这碗毒鸡汤:无论将来会遇到谁,生活都是先从遇到自己开始的. 题目: ...
- 华为机试HJ4 字符串分割
通过全部用例,运行时间19ms,占用内存9828kb,记得在上面添加java对应的import包. BufferedReader br = new BufferedReader(new InputSt ...
- 【牛客网 - 华为机试 - HJ4 字符串分割】
描述 •连续输入字符串,请按长度为8拆分每个输入字符串并进行输出: •长度不是8整数倍的字符串请在后面补数字0,空字符串不处理. 输入描述: 连续输入字符串(每个字符串长度小于等于100) 输出描述: ...
- 华为机试HJ36字符串加密
HJ36字符串加密-Python 题目 解题思路 代码 题目 解题思路 1.多组输入,按一般处理办法,循环 2.第一行,密钥,处理办法:转大写后,直接合并26个大写字母,去重,再截取26位,得到密钥: ...
- 华为机试108题(C 语言解答)
Nowcoder题库链接:华为机试 HJ1 字符串最后一个单词的长度(字符串) 输入:hello nowcoder输出:8说明: 最后一个单词为nowcoder,长度为8 示例代码: HJ1.c #i ...
- 集合篇10.华为机试(涮题记录2)
华为机试 31.成绩排序(**not) 32. 矩阵乘法 33. 24点游戏算法(not) 34.配置文件恢复 35. 查找两个字符串a.b中的最长公共子串 36.MP3光标位置(not) 37.DN ...
- [华为机试真题][2014]62.去除重复字符并排序
题目 描述: 去除重复字符并排序 运行时间限制: 无限制 内容限制: 无限制 输入: 字符串 输出: 去除重复字符并排序的字符串 样例输入: aabcdefff 样例输出: abcdef 代码 /*- ...
最新文章
- 格式化的盘要怎么寻回文件
- oracle索引优劣,ORACLE的五种表的优缺点概述
- 10月18号站立会议
- 1.6.2java工业星系_我的世界1.6.4
- servlet和JSP页面乱码问题
- 计算机网络-01-计算机网络体系结构
- fast recovery area oracle,oracle Fast Recovery Area的管理
- 阿里云ECS安骑士离线修复步骤
- 西安电子科技大学计算机考研资料汇总
- ffmpeg 视频转码
- 帮你混迹职场风生水起的八大定律
- iic的SDA引脚偶尔有毛刺(尖峰)是怎么回事。
- Themida是先进的Windows软件保护系统
- 海信手机插上卡显示无服务器,海信电视机开不了机怎么回事 海信电视开不了机解决方法【详解】...
- execl(知道每个商品单价,且知道总价,计算每个商品的数量)
- 使用Python库pyqt5制作TXT阅读器(四)-------应用设置和程序打包
- Basler工业相机使用环境配置——Linux系统
- [NOIP2009]靶形数独
- Redis详解(1)--原理和机制
- 抓取崔庆才个人博客网站前端源码
热门文章
- Dubbo使用Sentinel来对服务进行降级与限流
- sqlServer对内存的管理
- Android 动画的分类
- 766. 托普利茨矩阵
- 京东购物车双11实战
- 连续和问题C语言,内存连续的有关问题
- ios java 通信_AES加密解密 -- iOS、Java之间的互相通信
- vue 时间格式化函数_vue开发记录--通用时间格式函数
- android上传字符串到服务器,【图片】【转】通过Android 客户端上传数据到服务器【aide吧】_百度贴吧...
- java 错误日期转正确日期_java – jdk8日期转换中的错误?