剑指Offer之 - 字符串的排列
来源:互联网 发布:chairgun3弹道软件 编辑:程序博客网 时间:2024/05/29 18:49
题目:
输入一个字符串,打印出该字符串中字符的所有排列。
思路:
DFS。
代码:
#include<iostream>#include <vector>#include <string>using namespace std;//功能:求字符串全排列void dfs(string str ,vector<string> &result , int len , int start){if(start == len)result.push_back(str);for(int i = start ; i < len ; i++){swap(str[i] , str[start]);dfs(str , result , len , start + 1);swap(str[i] , str[start]);}}vector<string> Permutation(string str){vector<string> result;if(str.empty())return result;int len = str.size();dfs(str , result , len , 0);return result;}void DFSHHT(char *str , int len){if(len == strlen(str))//cout<<str<<" ";printf("%s " , str);for(int i = len ; i < strlen(str) ; i++){swap(str[i] , str[len]);DFSHHT(str , len + 1);swap(str[i] , str[len]);}}void PermutationHHT(char *str){if(str == NULL)return ;DFSHHT(str , 0);}int main(){string str = "abcd";vector<string> result = Permutation(str);for(int i = 0 ; i < result.size() ; i++)cout<<result[i]<<' ';cout<<endl;char str2[] = "abcd";PermutationHHT(str2);cout<<endl;return 0;}
0 0
- 剑指Offer之 - 字符串的排列
- 【剑指offer】之字符串的排列
- 剑指offer(六十一)之字符串的排列
- 【剑指offer】字符串的排列
- 剑指offer--字符串的排列
- 《剑指offer》字符串的排列
- 【剑指Offer】字符串的排列
- 剑指offer--字符串的排列
- 剑指offer:字符串的排列
- 剑指offer:字符串的排列
- 剑指offer:字符串的排列
- [剑指offer]字符串的排列
- 《剑指offer》-字符串的排列
- 剑指offer|字符串的排列
- 【剑指offer】字符串的排列
- 《剑指offer》字符串的排列
- 剑指Offer:字符串的排列
- 【剑指offer】字符串的排列
- 【css实践】全屏实现背景图片
- Perl 采集监控日志插入数据库
- Lua脚本语法说明(修订)
- 去掉重复的文件
- 黑马程序员_Java语言_异常,File类
- 剑指Offer之 - 字符串的排列
- TCP 的那些事儿(下)
- Hive——SerDe
- getline()
- 用状态方程解析出Java代码的三种注释
- java Socket网络编程
- Tomcat: org.apache.jasper.JasperException
- QMake 生成VS2013的工程文件
- 如何绕开Google Play地区限制,自由切换手机App所属国家