X

曜彤.手记

随记,关于互联网技术、产品与创业

  1. 9. Palindrome Number:

LeetCode 每日一题 - 9. Palindrome Number

LeetCode 每日一题系列,今天第十五题。“回文”的意思是指将给定的一段文字左右颠倒后原意保持不变的一段文字,但今天的主角不是一段文字,而是一段数字。建议先看原题的链接自己做一下,然后再参考本文给出的分析与解答进行总结。【Math】

9. Palindrome Number

Determine whether an integer is a palindrome. Do this without extra space.

Example:

Example1: x = 123321, return true

Example2: x = 123123, return false

0. 题目大意:

给定一个数字,判断该数字是不是回文(这里指将给定的数字左右颠倒重新排列后值与原值保持不变,可以理解为从左往右读与从右往左读保持一致)。

1. 基础解法:

如果“LeetCode 每日一题系列”之前的题目你都认真做过了,那么这道题简直是信手拈来,五分钟搞定。将给定的数字转换成字符串,并拆分成字符数组,接着利用“双指针”法依次判断第一个与最后一个,第二个与倒数第二个(以此类推)的元素是否相等,如果有一个不相等则返回 false;如果直到最后都保持相等则返回 true。循环的退出条件与之前我们用的时候保持一致。代码如下所示:

public static boolean isPalindrome(int x) {
  String s = String.valueOf(x);
  char[] cArr = s.toCharArray();
  
  for (int i = 0; i < cArr.length; i ++) {
    int j = cArr.length - i - 1;
    if (cArr[i] != cArr[j])
      return false;  
    if (i > j)
      break;
  }
  return true;
}
11506 / 11506 test cases passed.
Status: Accepted
Runtime: 16 ms



评论 | Comments


Loading ...