Palindrome Number

来源:互联网 发布:淘宝推广工具排名 编辑:程序博客网 时间:2024/05/01 18:01

回文数,当然有很简单的办法,那就是无比强大的 sprintf_s,但是题目限制不能使用额外空间,那么只好按部就班取数的每一位,然后再判断是否相等。

注意,负数无论如何也不能成为回文数,因为前面有负号。

按部就班版:

class Solution {public:bool isPalindrome(int x) {if (x == 0)return true;if (x < 0)return false;int safe = x;int count = 0;while (x) {x /= 10;count++;}int l = count - 1, r = 0;while (l >= r) {if (helper(safe, l) != helper(safe, r))return false;l--;r++;}return true;}int helper(int x, int i) {while (i > 0) {x /= 10;--i;}return x % 10;}};

sprintf_s版:

class Solution {public:    bool isPalindrome(int x) {        char data[13];        sprintf(data, "%d", x);        int l = 0, r = strlen(data) - 1;        while (l <= r) {            if (data[l] != data[r])                return false;            l++;            r--;        }        return true;    }};

http://oj.leetcode.com/problems/palindrome-number/

0 0
原创粉丝点击