Code Kata | Day 2


>質問


パラメータとして整数をreverse関数として受信します.
その数字をひっくり返して返してください.
x: 숫자

return: 뒤집어진 숫자를 반환!

예들 들어,

x: 1234
return: 4321

x: 1234
return: 4321

x: -1234
return: -4321

x: -1234
return: -4321

x: 1230
return: 321

私の答え

def reverse(number):
  if number == 0:
    return 0  
  new_number = str(number)
  new_number = new_number[::-1]

  if "-" in new_number:
    new_number = new_number.replace("-", "")
    new_number = int(new_number)
    new_number = new_number - new_number * 2
    new_number = str(new_number)

  if "0" in new_number:
    new_number = new_number.replace("0", "")

  return int(new_number)
長く乱れているように見えますが、これは承衍と一緒に努力して解決した問題です.🥲
私が初めて考えた論理は
  • は整数型で、リストに変換されます.
  • リストでは、reverse機能を使用して逆方向に作成する、
  • .
  • リストをintに再変換します.
  • しかしよく考えてみると、整数なので-1かもしれないし、0かもしれない.
    また、実際にreverseを使ってみましたが、あまり役に立ちませんでした.
    最後にしばらく悩んで、周りの人に聞いて、パラグライダーも使えると暗示しました.
    文字列もSleingされていてインデックスがあるかどうか申し訳ありませんが、今回初めて知りました.
    ですから、まず増幅を-1に設定すると、倒れにくくなりますので、逆さにしました.
    インデックスを削除するためにdelまたはpopを使用すると、グーグルは文字列に使用できない2つの回答を得た.
    そこでreplaceという関数が見つかり、0または-が見つかり、削除されました.
    そして最後の-はまた来ます...悩んでいる
    突然升妍は数学の头を起こしてnew_number-(new_number * 2)を打つようにしましょう!だから-を前に歩かせた.
    結局1時間かけて問題を解決して、私はとても喜んで、しかし他の同僚の答えを見て、私はただ곱하기 -1.......
    ハハハハハハ😭. 本当に簡単な方法があります.私たちはどうしてここに戻ったのですか.
    しかし、やはり喜んで、次はこのようにして、これはとても意味のある和弦タイプの时間です.

    模範解答

    def reverse(number):
        string = str(number)
        if string[0] == '-':
    	    string = string[::-1]
    	    new_string = string[-1]+string[:-1]
    	    return int(new_string)
        string = string[::-1]
        return int(string)
    模範的な答えを見て、簡単すぎて、読みやすいです.
    まず、整数を文字列に変える論理は同じです.
    文字列に-がある場合は、まず文字列を逆さにします.文字列インデックス-1-シンボルがある場所なので、まず-1を加算して文字列の前に-、さらに-1のインデックスを加えると、適切な数字を返す論理になるようです.-1にスライドするため、実際に出力される数字は-2インデックスである.
    そのため、数字が逆出力されると、前に-符号が加算されます.
    不思議なことに、簡単で滑車で実現できます.
    これは勉強が多くて、努力が多いCode CataDay 2です!