實例如下:
<!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實現字符全排列算法的簡單方法就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持武林網。
新聞熱點
疑難解答