题解 | #字符串的排列#

字符串的排列

http://www.nowcoder.com/practice/fe6b651b66ae47d7acce78ffdd9a96c7

牛蛙牛蛙 直接使用slice来去掉第i个元素避免了使用map 然后使用了一个set来去重

//大神写的简洁版
function Permutation(str, perm='', perms=[])
{
    // write code here
    if (str.length === 0) perms.push(perm)
    
    for (let i = 0; i < str.length; i++){
        let substr = str.slice(0, i) + str.slice(i+1)
        perm += str[i]
        Permutation(substr, perm, perms)
        perm = perm.slice(0, -1)
    }
    
    return [... new Set(perms)]
}
//没通过的代码 太大了 超内存 
// let per=''
// let res=[]
// let map=new Map()
// function Permutation(str)
// {
//     // write code here
//     recur(str,str.length)
//     return res 
    
// }

// function recur(str,len){
//     if(len===0) {
//         return []
//     }
//     if(per.length===len){
//         if(!res.find(ele=>ele=per)){
//                 res.push(per)
//         }
//     }
//     for(let i=0;i<len;i++){
//         if(map.has(i)){
//             continue
//         }
//         per+=str[i]
//         map.set(i,str[i])
//         recur(str,len)
//         per=per.substring(0,per.length-1)
//         map.delete(i)
        
//     }
//     recur(str.substring())
    
// }
module.exports = {
    Permutation : Permutation
};
全部评论

相关推荐

不愿透露姓名的神秘牛友
07-09 12:02
ssob上原来真有BOSS啊
硫蛋蛋:这种也是打工的,只不是是给写字楼房东打工
点赞 评论 收藏
分享
真起不了响亮的名字:九月份人家投秋招你投实习嘛,会不会有点晚了,算你九月份直接上岗,实习三个月后一月初去和别人抢秋招补录还是备战春招啊更别说休息一个月后还要重新复习八股和算法
点赞 评论 收藏
分享
07-10 14:08
已编辑
江西农业大学 Java
念旧select:做完把项目放到自己硬盘里给他看,看完拷走
点赞 评论 收藏
分享
Lorn的意义:你这种岗位在中国现在要么牛马天天加班,要么关系户进去好吃好喝,8年时间,真的天翻地覆了,对于资本来说你就说一头体力更好的牛马,哎,退伍没有包分配你真的亏了。
点赞 评论 收藏
分享
07-09 15:14
南京大学 C++
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务