10/19 CodeKata


質問する


パラメータとして整数をreverse関数として受信します.
その数字をひっくり返して返してください.
x:数値
return:反転した数字を返します!
たとえば、
x: 1234
return: 4321
x: -1234
return: -4321
x: 1230
return: 321

ろんり


初めて問題を見て、いくつかの条件を設定し始めました.
  • 因子で受信した整数の末尾に0がある場合、反転時に0は前に進まない.
  • をパラメータとし、負数を受け入れても動作し、文字列ではなく、「-」記号は最後まで動作しません.
  • 最初は整数の形で解こうと思ったのですが、良い方法が思いつかなかったので文字列に変換してアクセスすることにしました.
    このとき、負の値を文字列に変換すると、-記号も文字列に変換されるので、負の値を正の値に変換して文字列に変換します.
    その後,譲受人数列資料型を文字列資料型に変換し,文字列を反転する方法を用いた.
    文字列反転時に文字列スライド使用方法str[start:end:step]でstep-1を与えると文字列が反転する方法が適用されます.
    文字列をひっくり返して整数型に変換すると、問題は欲しい資料型で、ひっくり返して0が一番前に出たときに自動的に消去され、そのまま返すだけで問題は解決します.

    コード#コード#

    def reverse(number):
        if number < 0:
            number *= -1
            str_number = str(number)
            rev = str_number[::-1]
            int_number = int(rev)
            return int_number * (-1)
        else :
            str_number = str(number)
            rev = str_number[::-1]
            int_number = int(rev)
            return int_number

    コード2

    def reverse(number):
        if number < 0:
            number *= -1
            x = [int(a) for a in str(number)]
            firstIndex=0
            lastIndex=len(x)-1
            while True:
                x[firstIndex], x[lastIndex] = x[lastIndex], x[firstIndex]
                firstIndex += 1 
                lastIndex -= 1
                if firstIndex >= lastIndex:
                    break
            y = "".join(map(str,x))
            return int(y)*(-1)
        else :
            x = [int(a) for a in str(number)]
            firstIndex=0
            lastIndex=len(x)-1
            while True:
                x[firstIndex], x[lastIndex] = x[lastIndex], x[firstIndex]
                firstIndex += 1 
                lastIndex -= 1
                if firstIndex >= lastIndex:
                    break
            y = "".join(map(str,x))
            return int(y)
    実際、このコードは最初はループで解読されているので、少し恥ずかしいかもしれません.負数を正数に変換する方法を思いついたのですが、次にどうするのか整理できずにリストに1つずつ入れて要素を交換する方法で問題を解決しましたが、実現方法が恥ずかしかったので考え直して最初のコードが出てきました.
    幸いなことに、同じリストの要素を交換する方法があることを知った後、Pythonに対する考えが少し変わった.こんなのありますか?検索すると本当にその後グーグルゲームをしていると雲神の範囲が広くなったような気がします