有一個數組,裡面只存在 * 和 字母,比如 ['*', 'd', 'c', '*', 'e', '*', 'a', '*']。現在需要把這個陣列中的所有星號移動到左邊,所有的字母移動到右邊,所有字母的順序不能改變。(加分項:考慮時間複雜度和空間複雜度)
function parse(arr){ var counter = 0; for(var i = 0; i < arr.length; i++){ //找到所有*號,進行移除 if(arr[i] == '*'){ arr.splice(i, 1); counter++; //記錄*號的數量 i--; } } while(counter > 0){ //把*號重新加入開頭 arr.unshift('*'); counter--; } return arr;}console.log(parse(['*', 'd', 'c', '*', 'e', '*', 'a', '*']));
最新評論