【Python】数値を反転させて表示する(Reverse Integer)

スポンサーリンク

【Python】数値を反転させて表示する(Reverse Integer)

IT系の企業の入社試験ではコーディングテストを実施するところがあるようで、その対策としてLeetCodeというサイトを使うと良いらしい。

LeetCode - The World's Leading Online Programming Learning Platform
Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview.

無料でも使えるけど、有料だとより多い問題を解くことが出来て他にも便利なことがあるらしい。
とりあえずは無料で使ってみる。

その問題を試しに解いてみて、覚えていなかったり知らないことは、このブログでまとめていこうと思う。

数値を反転させる

数値を反転させて表示させる問題があった。

たとえば123だったら321を返し、-123だったら-321を返すというもの。

Reverse Integer - LeetCode
Can you solve this real interview question? Reverse Integer - Given a signed 32-bit integer x, return x with its digits reversed. If reversing x causes the valu...

解き方としては、まず入力で与えられた数値xを以下のようにして文字列に変換する。

x_char = str(x)

次に、文字列となったx_charを以下のように反転して並び替えれば良い。

reverse = x_char[::-1]

ここでは、[]演算子を使っている。

ただし、入力値が負の場合はマイナス(-)がついているので、それを除いて反転させる必要があることに注意。

最後に、文字列として扱っていたreverseを整数値として出力する

reverse = int(reverse)
return reverse

まとめ

最終的には以下のようなコードになる。

def reverse(x):
        flag = False
        x_char = str(x)
        
        if x_char[0] == '-':
            x_char = x_char[1:]
            flag = True
        
        reverse = x_char[::-1] #ここで反転させている
        
        if flag:
            reverse = '-' + reverse
        reverse = int(reverse)
        
        if reverse > 2**31 -1 or reverse < -2**31: #これはreverseが取りうる値の範囲をしていしているだけ
            reverse = 0
        return reverse
スポンサーリンク

人気記事

人気記事はこちら。

CUDA、cuDNNのバージョンをターミナルで調べるコマンド
【Pytorch】テンソルの次元を追加・削除する方法【dim】
【Pytorch】テンソルを連結する方法(cat・stack)
【Python】Tensorflowをダウングレード・アップグレードするコマンド
【Protobuf】"TypeError: Descriptors cannot not be created directly."を解決する【solved】

新着記事

新着記事はこちら。

【イタリア】ピサの斜塔へ。中に入って頂上まで上り景色を見る。
【イタリア】サンタ・マリア・デル・フィオーレ大聖堂にある「最後の審判」、屋上から見る景色が良かった
【イタリア】ミケランジェロ広場から夜景を見る。ヴェッキオ橋も。
【イタリア】フィレンツェのフードコートで夕食。ビール・ワイン・海鮮フライなど
【Latex】コンパイルエラーが出た場合の解決方法。Tex Live Managerでインストール。
タイトルとURLをコピーしました