本文共 834 字,大约阅读时间需要 2 分钟。
好吧。最近一发不可收拾了。应该是找工作笔试各种挫折打击到了。
这道题有深搜的做法,看得不是很懂。。。我用递归求全排列,然后所有生成的字符串用sort排序去重输出,不出所料的超过了存储空间。。。
于是看到如下的思路,大家可以移步这里:
程序很好读,用的是stl里面的next_permutation函数,只需要实现一个cmp函数即可。
函数实现可以像这位仁兄一样给大小写字母交错赋值,也可以像这样写:
bool cmp(char a, char b){ if(tolower(a) == tolower(b)) return a < b; return tolower(a) < tolower(b);}因为基本上还是按照不分大小写的字母序的。如果是大小写关系,单独处理一下就好。
程序如下,也已经特别向之前链接上的了。。。
#include#include
转载地址:http://fxxli.baihongyu.com/