利用O(1)空间复杂度对字符串排序(人人)
2016-09-10 18:39
204 查看
将字符串中字符按照“小写、大写、数字、符号”的顺序排列,要求利用O(1)的空间复杂度。
其中ASCII(小写)> ASCII(大写)> ASCII(数字)
符号要做特殊处理。
利用sort()函数,修改cmp(),进行排序。
其中ASCII(小写)> ASCII(大写)> ASCII(数字)
符号要做特殊处理。
利用sort()函数,修改cmp(),进行排序。
#include <iostream> #include <algorithm> #include <string> using namespace std; void change(string &str); int main() { string str1; while(cin >> str1) { change(str1); cout << str1 << endl; str1.clear(); } return 0; } bool isFlag(char c) { if((c >= '0'&&c <= '9')||(c >='A'&&c <= 'Z')||(c >= 'a'&&c <='z')) return false; else return true; } int cmp(char const &a,char const &b) { if(isFlag(a)) //凡是符号全部排序到最后 return 0; else if(isFlag(b)) return 1; else { if(a > b) { return 1; } else return 0; } } void change(string &str) { sort(str.begin(),str.end(),cmp); }
相关文章推荐
- Perl ASCII 字符判断
- 与ASCII码相关的C语言字符串操作函数
- 常用字符集编码详解(ASCII GB2312 GBK GB18030 unicode UTF-8)
- jQuery实时显示鼠标指针位置和键盘ASCII码
- PHP详解ASCII码对照表与字符转换
- 趣谈Unicode、Ascii、utf-8、GB2312、GBK等编码知识
- php实现图片转换成ASCII码的方法
- vbs实现unicode和ascii编码转换
- Python中输出ASCII大文字、艺术字、字符字小技巧
- JS中把字符转成ASCII值的函数示例代码
- javascript实现unicode与ASCII相互转换的方法
- python UnicodeEncodeError 问题解决
- ASCII 字元表(详细讲解)
- ASCII码对照表
- ASCII,Unicode和UTF-8
- 字符编码笔记:ASCII,Unicode和UTF-8
- VB中CHR()码值对应表
- ASCII、ANSI、Unicode及UTF-8编码
- Unicode,ANSI,UTF-8的故事