这篇文章给大家介绍的内容是关于js中字符串的全排列的算法解析,有着一定的参考价值,有需要的朋友可以参考一下。
输入一个字符串,按字典序打印出该字符串中字符的所有排列。例如输入字符串abc,则打印出由字符a,b,c所能排列出来的所有字符串abc,acb,bac,bca,cab和cba。
没啥好分析的了,这个题不会,上网查的思路,大概就是:
abc分化为abc、bac、cba(这是0和0交换、0和1交换、0和2交换
第一步得出的abc分化为abc、acb(这是1和1交换、1和2交换
第一步得出的bac分化为bac、bca(这是1和1交换、1和2交换
第一步得出的cba分化为cba、cab(这是1和1交换、1和2交换
function Permutation(str)
{
if(str === null || str === "")
return [];
var res = [];
var index = 0;
step(str.split(""), index, res);
return res.sort();
}
function step(strArr, cur, res) {
if(cur === strArr.length-1){
var i = 0, str = "";
while(i < strArr.length){
str += strArr[i++];
}
res.push(str);
}
for(var i = cur;i < strArr.length;i++) {
if(strArr[i] === strArr[cur] && i !== cur)
continue;
swap(strArr, i, cur);
step(strArr, cur+1, res);
swap(strArr, i, cur);
}
}
function swap(arr, a, b) {
var temp = arr[a];
arr[a] = arr[b];
arr[b] = temp;
}相关推荐:
本文档主要讲述的是Android数据格式解析对象JSON用法;JSON可以将Java对象转成json格式的字符串,可以将json字符串转换成Java。比XML更轻量级,Json使用起来比较轻便和简单。JSON数据格式,在Android中被广泛运用于客户端和服务器通信,在网络数据传输与解析时非常方便。希望本文档会给有需要的朋友带来帮助;感兴趣的朋友可以过来看看
0
JavaScript中Object.defineProperty()方法的解析
以上就是js中字符串的全排列的算法解析的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号