js實現(xiàn)字符全排列算法的簡單方法
更新時間:2017年05月01日 12:48:24 投稿:jingxian
下面小編就為大家?guī)硪黄猨s實現(xiàn)字符全排列算法的簡單方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
實例如下:
<!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實現(xiàn)字符全排列算法的簡單方法就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
layui-table獲得當前行的上/下一行數(shù)據的例子
今天小編就為大家分享一篇layui-table獲得當前行的上/下一行數(shù)據的例子,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-09-09javascript設計模式 – 觀察者模式原理與用法實例分析
這篇文章主要介紹了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