Leetcode_9 - palindrome-number 解题报告

Links:https://leetcode.com/problems/palindrome-number/

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

这题思路很简单,就是判断输入整数首位的各位是否相等。

注意点:

  1. 输入数可能带符号,负数按题目说法不是满足条件的回文数

  2. 末尾位为0的非0数,显然是不回文的。因为是按数字的方式反转,然后再判断回不回文。

方式是先把末尾为0的非0数,负数两种情况先排除。

然后写一个int转string的自定义函数(因为试过了好像itoa()函数无法使用,可能是我使用方式不对^_^)

然后首末位逐位判断,不等就return


Following AC code:


#include<string>

class Solution {

public:

    bool isPalindrome(int x) {

        if(x < 0 || (x % 10 == 0 && x != 0)){

            return false;

        }

        string str = itoa(x);

        int size = str.size();

        for(int i = 0; i< size / 2; i++){

            if(str[i] != str[size-1-i]){

                return false;

            }

        }

        return true;

    }

    string itoa (const int n ) {

        std::stringstream newstr;

        newstr<<n;

        return newstr.str();

    }

};


发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

Powered By Z-BlogPHP 1.5.2 Zero

Copyright liuyang1.com. 转载文章,请注明出处。谢谢!