字符串的全排列
来源:互联网 发布:地球大炮 知乎 编辑:程序博客网 时间:2024/05/16 13:44
//按照字典序进行排列,用位实现#include<iostream>#include<string>using namespace std;int a[] = { 1, 3, 5, 4, 6 };char str[] = "abcde";void print_subset(int n, int s){for (int i = 0; i < n; ++i){if (s&(1 << i)) // 判断s的二进制中哪些位为1,即代表取某一位 cout<<str[i]; //或者a[i] }cout << endl;}void subset(int n){for (int i = 0; i < (1 << n); ++i){print_subset(n, i);}}int main(void){subset(5);return 0;}
//只交换,字符串的长度不变,所有组合形式,用递归实现#include<string> #include<iostream>#include<vector>#include<algorithm>#include<map>using namespace std;void permutation(vector<string>&ans, string &str, int begin){if (begin == str.size() - 1){ans.push_back(str);return;}else{for (int i = begin; i < str.size(); i++){if (i != begin && str[i] == str[begin])continue;swap(str[i], str[begin]);//交换一个permutation(ans, str, begin + 1);//衍生出后面所有的均保存swap(str[i], str[begin]);//恢复到原始,后面与下一位置进行交换}}}int main(void){string s="abcd";vector<string> ss;permutation(ss, s, 0);for (auto c : ss)cout << c << endl;return 0;}
阅读全文
0 0
- 字符串的全排列
- 字符串的全排列
- 字符串的全排列
- 字符串的全排列
- 字符串的全排列
- 字符串的全排列
- 字符串的全排列
- 字符串的全排列
- 字符串的全排列
- 字符串的全排列
- 字符串的全排列
- 字符串的全排列
- 字符串的全排列
- 字符串的全排列
- 字符串的全排列
- 字符串的全排列
- 字符串的全排列
- 字符串的全排列
- Android倒计时CountDownTimer
- dxfgrabber简单读取dxf文件中的多行文本和单行文本信息
- iOS WebView 获取内存图片 图片点击
- 正则表达式
- 文章标题 Mayor's posters
- 字符串的全排列
- map与apply区别
- HashMap Hashtable LinkedHashMap 和TreeMap区别
- 2017.9.13 不等式组 思考记录
- android sqlite支持的数据类型
- 职场中哪些敏感问题不能问
- CSS 选择器权重计算规则
- 用Swing开发GUI程序(六)JTable
- 匿名科创地面站v4.08