LoginSignup
0
0

More than 1 year has passed since last update.

【LeetCode】アルゴリズム体操 9. Palindrome Number

Posted at

9. Palindrome Number

問題文

Given an integer x, return true if x is palindrome integer.

An integer is a palindrome when it reads the same backward as forward. For example, 121 is palindrome while 123 is not.

超訳
与えられたint xが回文ならtrueを返してくれよな!
ちな121は回文で、123は回文ちゃうよ。

解答

Stringで確認する

Solution.java
class Solution {
    public boolean isPalindrome(int x) {
        String original = String.valueOf(x);
        String reversed = new StringBuilder().append(x).reverse().toString();
        return original.equals(reversed);
    }
}

intで頑張る

Solution.java
class Solution {
    public boolean isPalindrome(int x) {
        int num = x, reversed = 0;

        while (num > 0) {
            reversed = (reversed * 10) + (num % 10);
            num /= 10;
        }

        return x == reversed;
    }
}

マイナスの時は無条件falseになるので、while内を通らないかつfalseを返すのでよし!
としていいのか、最初に明示的にif文ではじいた方がいいのか…。でもif文を入れると実行速度が若干落ちるしなぁと。
このアルゴリズム問題を解く時、先輩方の場合はどうしますか。コメントいただけると幸いです。

実行結果

Title Runtime Memory
Stringで確認 14ms 42.9MB
intで頑張る 11ms 41.2MB

ひとこと

最近Java Silverを取得して、勉強が落ち着いたので新しい方面の勉強をしたいなと思って手を出しました。
まだまだひよっこですが頑張るドン!!!!!!

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0