4月20日今日のアルゴリズム

6729 ワード

1.同じ数字が苦手


問題の説明
配列arr.アレイarrの各要素は、0から9の数字で構成されています.この場合、アレイarrは連続して表示される数字を1つだけ保持し、すべて削除しようとします.ただし、削除後に残数を返す場合は、アレイarr内の要素の順序を維持する必要があります.たとえば、
arr=1,3,3,0,1]の場合、[1,3,0,1]が返される.
arr=[4,4,3]の場合は[4,3]を返します.
配列arrから連続して現れる数字を削除し、残りの数を返すsolution関数を完了してください.
I/O例
arranswer[1,1,3,3,0,1,1][1,3,0,1][4,4,4,3,3][4,3]
私の答え
function solution(arr){
    let newArr = []
    for (let i = 0; i< arr.length; i++){
        if (arr[i]!== arr[i+1]){
            newArr.push(arr[i])
        }
    }return newArr
}
新しい配列を宣言します.配列の前の要素と後の要素が異なる場合は、新しい配列に挿入します.
他人の解答
function solution(arr)
{
    var answer = [];
    for(var i = 0; i<arr.length; i++){
        if(arr[i] == arr[i+1]){
            continue;
        }else{
               answer.push(arr[i])
        }
    }
    return answer;
}
=>continueを使用している場合は、説明方法は私と同じです.
function solution(arr)
{
    return arr.filter((val,index) => val != arr[index+1]);
}
=>filter関数の行の使用
私の場合、私はいつもfor文を使う傾向があり、後でいろいろな関数を使う必要があります.

2.降順で文字列を配置する


問題の説明
文字列sに現れる文字を大から小まで順番に並べ替え、新しい文字列を返す関数と解決策を完了します.
sは英語の大文字と小文字のみからなり、大文字は小文字より小さいと見なされます.
せいげんじょうけん
strは、長さが1より大きい文字列です.
I/O例
s return
"Zbcdefg" "gfedcbZ"
function solution(s) {
   return (s.split("").sort().reverse().join(""))
}
まず平屋に置いて、並べ替えて、それからひっくり返して、それからjoin!!これは満足できる草ですハハハ
String.prototype.split()
Array.prototype.sort()
Array.prototype.reverse()
Array.prototype.join()