題幹:判斷一個整數是否是迴文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; } }