ys memos

Blog

Leetcode 9 Palindrome Number


leetcode

2020/05/26


入力整数xが回文になっているか答える問題

<例>
121 -> true
-121 -> false
10 -> false

bool isPalindrome(int x) {
  if(x<0) return false;
  string str = to_string(x);
  int left = 0;
  int right = str.length()-1;
  while(left < right){
    if(str[left++] != str[right--]) return false;
  }
  return true;
}

負値は回文になり得ないのでfalseを返す。

bool isPalindrome(int x) {
  if(x<0) return false;

桁ごとに参照しやすくするためにstd::to_string()を用いて文字列に変換した。

  string str = to_string(x);

回文かどうかの確認。 leftは左からrightは右から順に確認して行き、str[left]str[right]が異なる場合は回文ではないのでfalseを返す。

  int left = 0;
  int right = str.length()-1;
  while(left < right){
    if(str[left++] != str[right--]) return false;
  }

「回文ではない」と判断されなかった場合は回文であるのでtrueを返す。

  return true;
}

関連タグを探す