首页 > 编程 > JavaScript > 正文

js实现字符全排列算法的简单方法

2019-11-19 16:41:08
字体:
来源:转载
供稿:网友

实例如下:

<!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实现字符全排列算法的简单方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持武林网。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表