字符串的排序
来源:互联网 发布:亚洲x站最新免费域名 编辑:程序博客网 时间:2024/06/15 14:16
何海涛:《剑指Offer:名企面试官精讲典型编程题》:九度OJ
- 题目描述:http://ac.jobdu.com/problem.php?cid=1039&pid=11
输入一个字符串,按字典序打印出该字符串中字符的所有排列。例如输入字符串abc,则打印出由字符a,b,c所能排列出来的所有字符串abc,acb,bac,bca,cab和cba。
- 输入:
每个测试案例包括1行。
输入一个字符串,长度不超过9(可能有字符重复),字符只包括大小写字母。
- 输出:
对应每组数据,按字典序输出所有排列。
- 样例输入:
abc
BCA
- 样例输出:
abc
acb
bac
bca
cab
cba
ABC
ACB
BAC
BCA
CAB
CBA
代码AC:
思想:全排列 问题!
#include <iostream> #include <string> #include <cstdio> #include <cstdlib> #include <cstring> #include <algorithm> using namespace std; void def_all(int dep, int dp, string &s, char ret[], bool ok[]) { if (dep == dp) { ret[dep] = '\0'; printf("%s\n", ret); return; } for(int i = 0; i < dp; i++) if (ok[i]) { if (i != 0 && s[i] == s[i-1] && ok[i-1]) continue; ok[i] = false; ret[dep] = s[i]; def_all(dep + 1, dp, s, ret, ok); ok[i] = true; } } int main() { string s; bool ok[10]; while(cin >> s) { sort(s.begin(), s.end()); memset(ok, true, sizeof(ok)); char *ret = new char[s.size() + 1]; def_all(0, s.size(), s, ret, ok); delete [] ret; } return 0; }
- Java的字符串排序
- 字符串的排序
- 字符串的排序
- 字符串的排序
- 字符串排序的问题
- HWOJ 字符串的排序
- 字符串的排序
- 字符串的冒泡排序
- 字符串的排序
- [python]字符串的排序
- 字符串的排序
- 字符串的排序问题
- 字符串的sort排序
- Q28:字符串的排序
- 【C】字符串的排序
- 巧妙的字符串排序
- 字符串的冒泡排序
- 字符串的冒泡排序
- linux启动ftp服务
- Dephi数据库编程之数据库访问组件
- 无法从“const char [27]”转换为“wchar_t *”
- OpenGL ES1.1.12 目录
- MultiByteToWideChar和WideCharToMultiByte用法详解
- 字符串的排序
- tomcat启动时出现异常Exception loading sessions from persistent storage
- 用JavaScript实现自动添加元素和级联操作
- win7系统怎么搜索文件中包含的关键字?(批量搜索多个文件)
- 番茄工作法——专治拖延症、精神涣散、再要五分钟综合症
- BASH-学习笔记
- MYSQL5.1 WINDOWS环境下导出查询数据到EXCEL文件
- 男人强忍泪水就等于“自杀”
- 那些0ms的神代码之谜