题解 | #58.字符串的排列#

字符串的排列

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

和全排列一样,只不过由数组变为了字符串

可以同样用数组path存储,也可以采用字符串存储

数组存储:res.push(path.join(''))

字符串存储:

let path = ''

path += str[i]

path = path.slice(0,path.length-1)

function Permutation(str)
{
  let used = [];
  let path = [];
  let res = [];
  
  function traceTrack(){
    if(path.length == str.length){
      res.push(path.join(''));
      return;
    }
    
    for(let i=0; i<str.length; i++){
      if(i!=0 && str[i]==str[i-1] && !used[i-1])
        continue;
      if(!used[i]){
        used[i] = true;
        path.push(str[i]);
        traceTrack();
        path.pop();
        used[i] = false;
      }
    }
  }
  traceTrack();
  return res;
}

全部评论
这个只通过10/12呀~~
点赞 回复 分享
发布于 2022-07-01 11:04

相关推荐

评论
1
收藏
分享

创作者周榜

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