9. Palindrome Number

Posted ming-1012

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了9. Palindrome Number相关的知识,希望对你有一定的参考价值。

题目链接:https://leetcode.com/problems/palindrome-number/description/

Determine whether an integer is a palindrome. An integer is a palindrome when it reads the same backward as forward.

Example 1:

Input: 121
Output: true

Example 2:

Input: -121
Output: false
Explanation: From left to right, it reads -121. From right to left, it becomes 121-. Therefore it is not a palindrome.

Example 3:

Input: 10
Output: false
Explanation: Reads 01 from right to left. Therefore it is not a palindrome.

Follow up:

Coud you solve it without converting the integer to a string?

 

思路:

  • 判断一个数是否为回文数,这里有两种常见的处理方法:
    • 方法一:将数字转换为string类型 ,然后对string首尾开始遍历,当遍历过程中,出现首尾不等的情况,则可判断数字不是回文数,若遍历完成没有出现不等的情况,则该数为回文数。
    • 方法二:和第一种方法其实也是异曲同工之妙,将数字进行取余和除数操作,即将数字按数位“一层层剥离”,例如:123,通过上述所述方法依次变为3、2、1。将分离出来的数字存入容器中,然后进行和方法一中的类似操作,也是在容器的首尾依次对容器中的元素进行遍历,处理手段同方法一。

 

编码如下

 1 class Solution {
 2 public:
 3     bool isPalindrome(int x) {
 4         if (x < 0)  return false;       // 负数不满足
 5         if (x < 10) return true;        // 0满足
 6         
 7         // 方法一:直接转换为string类型进行处理
 8         string s = to_string(x);
 9         
10         for (int i = 0, j = s.length() - 1; i <= j; ++i, --j)
11         {
12             if (s[i] != s[j]) return false;
13         }
14         
15         
16         // 方法二:对数字进行“逐层剥离”
17 //         vector<int> ivec;
18 //         while (x != 0)
19 //         {
20 //             int cur = x % 10;
21 //             ivec.push_back(cur);
22 //             x = x / 10;
23 //         }
24         
25 //         for (int i = 0, j = ivec.size() - 1; i <= j; ++i, --j)
26 //         {
27 //             if (ivec[i] != ivec[j]) return false;
28 //         }
29         
30         return true;
31     }
32 };

以上是关于9. Palindrome Number的主要内容,如果未能解决你的问题,请参考以下文章

9. Palindrome Number

leetcode 9. palindrome number

9. Palindrome Number

9. Palindrome Number

9. Palindrome Number

#Leetcode# 9. Palindrome Number