生成字符串的全排列

 

void permute(string s)
{
sort(s.begin(),s.end());
cout<<s<<endl;
while(next_permutation(s.begin(),s.end()))
cout<<s<<endl;

 

上面的是标准库的迭代版本。

下面的是递归版本

void permute(string s,unsigned k)
{
if (k == s.length()-1)
{
cout<<s<<endl;
}
for (unsigned i = k;i<s.length();++i)
{
swap(s[i],s[k]);
permute(s,k+1);
}

时间: 2024-11-05 17:24:42

生成字符串的全排列的相关文章

谈表达式树的缓存(2):由表达式树生成字符串

谈到使用表达式树作为key进行缓存,您脑海中最早浮现出来的解决方案是什么?老赵看来,大部分朋 友的第一反应自然就是将作为key的表达式树,使用一定规则生成一个字符串.简而言之,这个生成字符 串的规则F需要能够保证: 在同一个缓存空间内,同样的表达式树能够生成相同的字符串. 在同一个缓存空间内,不同的表达式树生成不同的字符串. 似乎有些罗嗦,朋友们明白便是.其中"在同一个缓存空间"的前提,其实只是放宽了后续要求的条 件.因为在不同的缓存空间内,即使不同的表达式树生成了同样的字符串,它们也

string-随机生成字符串的方法 求解释

问题描述 随机生成字符串的方法 求解释 //产生长度为length的随机字符串 char* genRandomString(int length) { int flag i; char* string; srand((unsigned) time(NULL )); if ((string = (char*) myMalloc(length)) == NULL ) { myLog(""Malloc failed!flag:14 ""); return NULL ; }

MyXls导excel遇到长数字,自动变成科学计数法了,能不能有办法自动生成字符串型?

问题描述 MyXls导excel遇到长数字,自动变成科学计数法了,能不能有办法自动生成字符串型?求教了 解决方案 解决方案二:在特殊列的数据前加个符号就可以了,比如加个'解决方案三:我也试过,但是导出的excel会显示单引号',能不能自动隐去这个单引号?

java 怎么随机生成字符串显示在jsp页面上

问题描述 java 怎么随机生成字符串显示在jsp页面上 如上我要点击一个按钮生成一个随机的用户, 用户账号是一个随机的字符串,我还需要获得产生随机的次数,来统计 解决方案 1.直接用random生成数字,然后把数字拼接 2.创建字符数组,然后random出数字,获取对应数字下标的字符,再拼接 解决方案二: 一种是楼上说的方法,另一种就是你要记录次数,用数据库来生成 解决方案三: 用UUID生成,存进数据库,在数据库中统计次数 解决方案四: 你字符串要什么格式的(汉字,英文大小写,数字,特殊符号

对象-JAXB可以生成字符串形式的XML么?求大神回答

问题描述 JAXB可以生成字符串形式的XML么?求大神回答 怎么利用JAXB把对象转换成字符串形式的XML,在线等 .... 解决方案 结构 <?xml version="1.0" encoding="utf-8" ?> <busiSync> <header> <OperCode>1</OperCode> <TimeStamp>1</TimeStamp> </header>

php随机生成字符串程序方法总结

随机生成数数字 mt_rand()函数  代码如下 复制代码 $num = mt_rand(0,9999999); 但如果我想随机生成字符串怎么操作,网站找到一个方法.  代码如下 复制代码 function random($length) {      srand(date("s"));      $possible_charactors = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";      $string = "

php 随便生成字符串函数shuffles()

定义和用法 该str_shuffle ( )函数随机shuffles的所有字符的字符串. 语法 str_shuffle(string) Parameter Description string 字符串必需.指定字符串洗牌 下面我们来看看str_shuffle 函数的教程吧. <?php echo str_shuffle("Hello World"); ?>   输出结果.   H leooWlrld 以上是小编为您精心准备的的内容,在的博客.问答.公众号.人物.课程等栏目也

剑指offer系列之二十六:输出字符串的全排列

题目描述 输入一个字符串,按字典序打印出该字符串中字符的所有排列.例如输入字符串abc,则打印出由字符a,b,c所能排列出来的所有字符串abc,acb,bac,bca,cab和cba. 结果请按字母顺序输出. 输入描述: 输入一个字符串,长度不超过9(可能有字符重复),字符只包括大小写字母. 此题与剑指offer原题存在一些初入,在原题中并没有规定字符串中字符是否有重复的出现.不过思路是一致的,只不过是添加额外的判断罢了.下面说说我的思路吧:先不考虑是否出现重读字符,要对一个字符进行全排列,可以

asp.net(c#) 使用Rex正则来生成字符串数组的代码

看这儿.如果你熟悉正则表达式 ,让我们进入正题.这个TOOL的名称叫Regular Expression Exploration. 你可以从这儿下载 .目前的版本是1.0 release. Rex是一个命令行工具, 具体用法可以在CMD下执行便可以看到用法,这个是.net的程序.我们可以引用它,然后用下面的Code来生成我们想要的字符串数组. 复制代码 代码如下: /// <summary> /// Generates the test. /// </summary> /// &l