回文数字判断

回文数字判断

问题

这个题目说的是,给你一个整数,你要判断它是否是一个回文数字。所谓回文数字就是,你正着读和反着读都是同一个数字。

比如,给你的数字是:

12321

无论你从左向右读,还是从右向左读,都是 12321,所以它是一个回文数字,你要返回 true。

再比如说:

-232

你从左向右读是 -232,但从右向左读则是 232-,和 -232 不一样,因此它不是一个回文数字,你要返回 false。

代码

public class AlgoCasts {

  // Time: O(m), Space: O(1)
  public boolean isPalindromeString(int x) {
    String str = String.valueOf(x);
    int i = 0, j = str.length() - 1;
    while (i < j) {
      if (str.charAt(i) != str.charAt(j)) return false;
      ++i;
      --j;
    }
    return true;
  }

  // Time: O(m), Space: O(1)
  public boolean isPalindrome(int x) {
    if (x < 0) return false;
    int tmp = x;
    long y = 0;
    while (tmp != 0) {
      int num = tmp % 10;
      y = y * 10 + num;
      tmp = tmp / 10;
    }
    return y == x;
  }

}

  转载请注明: ForwardXu 回文数字判断

 上一篇
单链表中圆环的开始节点 单链表中圆环的开始节点
单链表中圆环的开始节点问题 这个题目说的是,给你一个单链表,你要返回这个链表中,圆环的开始节点。如果单链表无环,就返回空指针。 比如说,给你的单链表是: 1 -> 2 -> 4 -> 8 -> 2 // 最后的 2 和前面的 2 是同一个
2018-12-09
本篇 
回文数字判断 回文数字判断
回文数字判断问题 这个题目说的是,给你一个整数,你要判断它是否是一个回文数字。所谓回文数字就是,你正着读和反着读都是同一个数字。 比如,给你的数字是: 12321 无论你从左向右读,还是从右向左读,都是 12321,所以它是一个回文数字
2018-12-08
  目录