题干:判断一个整数是否是回文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; } }