js实现字符全排列算法的简单方法
更新时间:2017年05月01日 12:48:24 投稿:jingxian
下面小编就为大家带来一篇js实现字符全排列算法的简单方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
实例如下:
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>字符全排列</title>
</head>
<body>
<script>
function charsMap(o){
o = (o+"").replace(/(\w)(?=\w*\1)/g,"").replace(/\s+/g,""); //去除重复字符以及空白字符
switch(o.length){
case 0:
case 1: return [o];
default:
var p = /^(\S+?)(\S)$/.exec(o), //使用正则将字符串分割为n-1长度字符串,以及最后一个字符串。
_r = charsMap(p[1]),
l = p[2],
r = [];
for (var i = 0; i < _r.length; i++) {
var t = _r[i];
for (var j = 0, len = t.length; j <= len; j++) {
r.push( t.replace( new RegExp("^(\\S{"+j+"})(\\S{"+(len-j)+"})$"), "$1"+l+"$2" ) );
//字符插入位置从开头前到结尾后,正则的作用相当于Array.splice(j,0,l); 在下标j的位置插入一个字符l
}
}
return r;
}
}
var arr = "abcde";
var t = new Date().getTime();
var result = charsMap(arr);
document.write( "总耗时:"+(new Date().getTime()-t)+"ms" );
var html = "<ul><li>" + result.join("</li><li>") + "</li></ul>";
document.write(html);
</script>
</body>
</html>
以上这篇js实现字符全排列算法的简单方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。
相关文章
关于捕获用户何时点击window.onbeforeunload的取消事件
关于捕获用户何时点击window.onbeforeunload的取消事件的代码,需要的朋友可以参考下。2011-03-03
javascript数据结构之多叉树经典操作示例【创建、添加、遍历、移除等】
这篇文章主要介绍了javascript数据结构之多叉树经典操作,简单描述了多叉树的概念,并结合实例形式分析了javascript多叉树的创建、添加、遍历、移除等常见操作方法,需要的朋友可以参考下2018-08-08
JavaScript实现将xml转换成html table表格的方法
这篇文章主要介绍了JavaScript实现将xml转换成html table表格的方法,实例分析了javascript操作XML文件与table表格的技巧,非常具有实用价值,需要的朋友可以参考下2015-04-04
一篇文章教你用JavaScript使用流程控制打印九九乘法表
这篇文章主要为大家详细介绍了JavaScript使用流程控制打印九九乘法表,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助2022-02-02


最新评论