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を取得して、勉強が落ち着いたので新しい方面の勉強をしたいなと思って手を出しました。
まだまだひよっこですが頑張るドン!!!!!!