剑指offer:字符串的排列(字符串全排列)
来源:互联网 发布:阿里云帮助文档 编辑:程序博客网 时间:2024/06/05 19:00
题目描述
输入一个字符串,按字典序打印出该字符串中字符的所有排列。例如输入字符串abc,则打印出由字符a,b,c所能排列出来的所有字符串abc,acb,bac,bca,cab和cba。 结果请按字母顺序输出。
输入描述:
输入一个字符串,长度不超过9(可能有字符重复),字符只包括大小写字母。
#include <stdlib.h>#include <string>#include <stdio.h>#include <iostream>#include <vector>#include <stack>#include <queue>#include <algorithm>using namespace std;class Solution {private:vector<string> vec;public: vector<string> Permutation(string str) { if(str.empty()){return vec;}/* 调用perm函数进行全排列 */perm(str,0,str.size());sort(vec.begin(),vec.end());return vec; }void perm(string str, int i , int n){int j = 0;if(i == n){vec.push_back(str);}else{for(j = i; j < n; j++){/* 防止重复的交换 */if(i != j && str[i] == str[j]){continue;}swap(str[i],str[j]);perm(str,i+1,n);swap(str[i],str[j]);}}}};int main(void){string str("abc");Solution s;vector<string> v;int i = 0;v = s.Permutation(str);for(i = 0; i < v.size(); i++){cout << v[i] << endl;}return 0;}
0 0
- 剑指offer:字符串的排列(字符串全排列)
- 剑指Offer------字符串的排列(全排列)
- 剑指offer:字符串的全排列
- 剑指offer 28. 字符串的全排列
- 剑指offer 之 字符串的全排列、全组合
- 码农小汪-剑指Offer之25 -字符串的排列(全排列)
- 【剑指offer】字符串的排列
- 剑指offer--字符串的排列
- 《剑指offer》字符串的排列
- 【剑指Offer】字符串的排列
- 剑指offer--字符串的排列
- 剑指offer:字符串的排列
- 剑指offer:字符串的排列
- 剑指offer:字符串的排列
- [剑指offer]字符串的排列
- 《剑指offer》-字符串的排列
- 剑指offer|字符串的排列
- 【剑指offer】字符串的排列
- 利用Java的反射机制,写了一个简单的仿Gson的解析器
- Entity Framework 中的Code First 介绍
- IOS每天15个注意点系列之UI-控件基础
- Java虚拟机的内存是如何分布的
- 第十篇:C++中乘除连续运算出问题了
- 剑指offer:字符串的排列(字符串全排列)
- 测一下markdown之第一篇博文
- 学习Ant编译脚本
- 1.JDK安装环境搭建
- 增强学习资料集锦
- 公钥加密体系和https
- 数理统计与IT笔试中的等待问题(二)
- 2.第一个应用程序
- excel自定义公式的妙用