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实现字符全排列算法的简单方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。
相关文章
javascript设计模式 – 观察者模式原理与用法实例分析
这篇文章主要介绍了javascript设计模式 – 观察者模式,结合实例形式分析了javascript观察者模式相关概念、原理、用法及操作注意事项,需要的朋友可以参考下2020-04-04解决使用layui的时候form表单中的select等不能渲染的问题
今天小编就为大家分享一篇解决使用layui的时候form表单中的select等不能渲染的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧2019-09-09实例分析Array.from(arr)与[...arr]到底有何不同
这篇文章通过实例主要给大家分析介绍了关于Array.from(arr)与[...arr]到底有何不同的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用js具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧2019-04-04
最新评论