[编程题]字符串排序
来源:互联网 发布:淘宝上卖的dnf号可靠吗 编辑:程序博客网 时间:2024/06/06 18:59
Talk is cheap, show me the code.
一、问题描述
编写一个程序,将输入字符串中的字符按如下规则排序。
规则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).
输入例子:
A Famous Saying: Much Ado About Nothing (2012/8).
输出例子:
A aaAAbc dFgghh: iimM nNn oooos Sttuuuy (2012/8).
二、问题分析
首先是对所有大小写字母按照原来的顺序进行排序,然后把排序后的字符都替换原来的字符串的大小写字母即可。排序的核心是选择排序。
#include <iostream>#include <string>#include <cctype>using namespace std;string stableSort(string str){ string s; char up = 'A', low = 'a'; while (up <= 'Z') { for (int i = 0; i < str.size(); i++) { if (str[i] == up || str[i] == low) { s += str[i]; } } up++; low++; } return s;}int main(){ string line; while (getline(cin, line)) { string str; for (int i = 0; i < line.size(); i++) { if (isalpha(line[i])) { str += line[i]; } } string s = stableSort(str); int j = 0; for (int i = 0; i < line.size(); i++) { if (isalpha(line[i])) { line[i] = s[j]; j++; } } cout << line << endl; } return 0;}
1 0
- [编程题]字符串排序
- java编程--字符串替换排序
- C++ 编程题练习-字符串排序(10-7)
- 吉比特2017年秋招编程题:字符串排序
- 华为在线编程系列-字符串排序
- 字符串排序 Java编程练习 学堂在线
- 算法题:字符串排序
- 字符串排序-变形题
- Introduction to Java Programming编程题9.11<对字符串中的字符排序(支持大小写混排)>
- 编程题#7:字符串排序(C++程序设计第10周)
- 【编程题】快速排序
- 成绩排序【编程题】
- 字符串编程题
- 字符串常见编程题
- 字符串处理编程题
- 回文字符串编程题
- [编程题]字符串分隔
- [编程题]字符串分隔
- python 安装VTK
- 原生javascript 和jQuery的ajax用法
- 使用Gitolite搭建轻量级的Git服务器
- 解决request内置对象的中文乱码问题。
- Delphi6 控件运行期移动类
- [编程题]字符串排序
- 自定义DataGridView外观
- warning C4018: “<”: 有符号/无符号不匹配
- 处理ScrollView嵌套GridView显示不全问题
- 让技术成为商品——在互联网中流通、协作
- weblogic管理1——创建 和 删除一个domain 说明本文环境
- 微信小程序实用组件:省市区三级联动demo
- android 内存管理
- homestead搭载laravle安装流程 for mac