程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> 關於C++ >> [Leetcode]

[Leetcode]

編輯:關於C++

Determine whether an integer is a palindrome. Do this without extra space.
題目:判斷int數據是否為回文數
注意:負數不是回文數,0是最小的回文數
思路:此題和前面一道 求int數的反序差不多http://blog.csdn.net/xiabodan/article/details/46674133
1、第一種解法不需要邊界判斷,暴力求解,依次比較最後一位與第一位、倒數第二位與第二位……….一直比較N/2次,N為數據x的十進制位數
2、第二種解法由於需要對數據x取反系,所以要邊界檢查。當然也可以采用一個long long的數據去存反序數據r

bool isPalindrome(int x) {

    //解法1
 /*
    int n = 0;
    int tem = x;
    int i = 0;
    if(x < 0) return false;
    while(tem)
    {
        n++;
        tem = tem / 10;
    }
    int m = n;
    for(i=0;i INT_MAX_DIV10) 
            return 0;
        r = r * 10 ;
        tem = x % 10 ;
        if(INT_MAX - tem < r) 
            return 0;
        r = r + tem;
        x = x/10;
    }
    return (r == t);   
}

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved