LeetCode.9 Palindrome Number

題幹:判斷一個整數是否是迴文spa

解法1:整數轉字符串,判對稱code

時間效率 164ms,耗時在字符串轉換 應該是這樣blog

bool isPalindrome(int x) {
    if (x < 0)
        return false;
    else {
        int num = x;
        char str[1000];
        sprintf(str, "%d" , num);
        int size = (int)strlen(str);
        bool isFlag = true;
        for  (int i = 0; i < size / 2; i ++) {
            if (str[i] != str[size - 1 - i]) {
                isFlag = false;
                break;
            }
        }
        return isFlag;
    }
}

 第二種,利用整數翻轉,參考例題 LeetCode 7 reverse-integerip

 時間效率 116ms (感受到題目有按部就班哦 能把作過的題的方法用上)leetcode

bool isPalindrome(int x) {
    if (x < 0 || (x % 10 == 0 && x > 0)) //能被10 整除 大於 0的數 必定不對稱 邊界
        return false;
    else {
        int sumLong = x;
        int sum = 0;
        int num =  0;
        while (x > 0) {    
            num = x % 10;  //末尾數字
            sum = sum * 10;//進位
            sum += num;
            x = x / 10;
        }
        return sum == sumLong;
    }
}
相關文章
相關標籤/搜索