摘要:朋友面試的時候一道面試題,感覺挺有意思的就來實現下。首先我們來題目的意思是用排個數,然后只能有個數重復,有多少種排法比如要形成這樣的位數,我們可以在中插入或者或者達到。我們首先需要知道在不重復的情況下能夠組合幾種,種模式。
朋友面試的時候一道面試題,感覺挺有意思的就來實現下。
首先我們來題目的意思是用abc排4個數,然后只能有2個數重復,有多少種排法?
比如:abca,abcb,abcc,acba
要形成這樣的4位數,我們可以在abc中插入a或者b或者c;達到aabc,abac,abca。
思路有了,下面來看看怎么實現。
我們首先需要知道abc在不重復的情況下能夠組合幾種,abc,acb,bac,bca,cab,cba;6種模式。
然后遍歷原數據abc,依次獲取a或b或c,插入到已經的幾種混排的方式中國,因為我們要形成4位數,所以我們遍歷4次,插入的位置依次為0,1,2,3.
但是因為 abc,在0的位置插入a,和1的位置插入a,都是aabc,所有有些會是重復的,用new Set()來去重。最后輸出結果。方法有了下面我們來看看代碼怎么實現
//初始變量 let array=[]; //輸出數組 let str="abc"; //原數據 let len=4; //排列的位數 let b=str.split(""); //把原數據變為數組 let cross=conversion(permutate(str)).length; //獲取原數據交叉的不重復的數組使用遞歸處理字符串有多少種交叉方式
/** * * * @param {any} str //"abc" * @returns */ function permutate(str){ var result=[]; if(str.length==1){ return [str] }else{ var preResult=permutate(str.slice(1)); for(var j=0;j把數據轉化 function conversion(len){ let result=[]; for(var i=0;i for(var e=0;e console.log(new Set(array)); //去除重復添加的數據 Set { "a,a,b,c", "a,b,a,c", "a,b,c,a", "b,a,b,c", "a,b,b,c", "a,b,c,b", "c,a,b,c", "a,c,b,c", "a,b,c,c", "b,a,a,c", "b,a,c,a", "b,b,a,c", "b,a,c,b", "c,b,a,c", "b,c,a,c", "b,a,c,c", "b,c,a,a", "b,b,c,a", "b,c,b,a", "b,c,a,b", "c,b,c,a", "b,c,c,a", "a,a,c,b", "a,c,a,b", "a,c,b,a", "a,c,b,b", "c,a,c,b", "a,c,c,b", "c,a,a,b", "c,a,b,a", "c,b,a,b", "c,a,b,b", "c,c,a,b", "c,b,a,a", "c,b,b,a", "c,c,b,a" } console.log(new Set(array).size); //返回數組的長度 36主要的是思路是在數據中插入一個數據,圍繞這個來擴展開來。也希望大家指點錯誤,最后也希望大家喜歡,可以加入qq群439667347,大家一起討論,一起進步,后續更新中...
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/93513.html
摘要:下面代碼會存在什么問題,如何改進一行代碼輸出之間的所有偶數。簡述進程之間如何通信多路復用的作用模型的區別什么是并發和并行解釋什么是異步非阻塞的作用面試題說說你知道的命令如何查看某次提交修改的內容答案掃碼下面的二維碼訂閱即可獲取。 引言 最近在刷面試題,所以需要看大量的 Python 相關的面試題,從大量的題目中總結了很多的知識,同時也對一些題目進行拓展了,但是在看了網上的大部分面試題不...
摘要:解析第題第題為什么的和的中不能做異步操作解析第題第題京東下面代碼中在什么情況下會打印解析第題第題介紹下及其應用。盡量減少操作次數。解析第題第題京東快手周一算法題之兩數之和給定一個整數數組和一個目標值,找出數組中和為目標值的兩個數。 引言 半年時間,幾千人參與,精選大廠前端面試高頻 100 題,這就是「壹題」。 在 2019 年 1 月 21 日這天,「壹題」項目正式開始,在這之后每個工...
摘要:又到了跳槽高峰期了,想跳槽的小伙伴們一定已經開始做準備工作了吧,我也不例外,哈哈哈這里花了幾天復習正則表達式,寫了這篇文章和大家一起回憶回憶這簡單易忘的正則吧。 又到了跳槽高峰期了,想跳槽的小伙伴們一定已經開始做準備工作了吧,我也不例外,哈哈哈!這里花了幾天復習正則表達式,寫了這篇文章和大家一起回憶回憶這簡單易忘的正則吧。 正則表達式基本語法 一、創建JavaScript正則(RegE...
閱讀 2772·2021-11-19 11:30
閱讀 3058·2021-11-15 11:39
閱讀 1782·2021-08-03 14:03
閱讀 1985·2019-08-30 14:18
閱讀 2043·2019-08-30 11:16
閱讀 2149·2019-08-29 17:23
閱讀 2597·2019-08-28 18:06
閱讀 2533·2019-08-26 12:22