[プログラマーレベル1]-私は同じ数字が好きではありません.


2022/03/17


問題の説明


配列arr.アレイarrの各要素は、0から9の数字で構成されています.この場合、アレイarrは連続して表示される数字を1つだけ保持し、すべて削除しようとします.ただし、削除後に残数を返す場合は、アレイarr内の要素の順序を維持する必要があります.たとえば、
  • arr=[1,1,3,0,1]は[1,3,0,1]を返します.
  • arr=[4,4,4,3]は[4,3]を返します.
    配列arrから連続して現れる数字を削除し、残りの数を返すsolution関数を完了してください.
  • せいげんじょうけん

  • アレイarrサイズ:1000000以下の自然数
  • アレイarrの要素サイズ:0以上9以下の整数
  • マイコード(成功)

    def solution(arr):
        answer=[]
        for i in arr:
            if i not in answer:
                answer.append(i)
            if i !=answer[-1]:
                answer.append(i)
        return answer

    結果



    他者コード

    def no_continuous(s):
        a = []
        for i in s:
            if a[-1:] == [i]: continue
            a.append(i)
        return a

    に感銘を与える


    初めて他の人のようにコードを記述しようとしたが、ifa[1]=iを記述する際に範囲を超え、異なる方法でコードを記述した.ただし、a[-1:]ではなくa[-1]を他のコードで使用すると、範囲を超えずに値を出力できることがわかります.
    また,a[1]=iで書くと,a[]がリストであり,iは実数の値であるため,すべてappendであるため,[i]で書くべきであることも認識した.
    質問リンク