今天有人在我们的MOK粉丝群里丢出来一道题,于是兴致一上来就决定动手做一做,还发给同事一起做。
题目:
给定一个list如下,请将所有的*号排列在左侧,不引入新的list
list = ['*', '-', '#', '*', '-', '*', '*', '&', '-', '*', '-', '%', '-', '-', '*'];
同事给出的解法:
image.png我给出的解题思路:
var array = ['*','-','#','*','-','*','*','&','-','*','-','%','-','-','*'];
var cnt=0, j=0, i=0;
for(var j=array.length-1; j>=0; j--){
if(j-cnt < 0){
array[j] = '*';
continue;
}
if(array[j-cnt] == '*'){
j++;
cnt++;
continue;
}
array[j] = array[j-cnt];
}
网友评论