leetcode 9 回文数

来源:互联网 发布:淘宝助手缓存清理 编辑:程序博客网 时间:2024/05/24 06:01

上原题先:

要求判断输入整数是否是回文数,并且不能使用额外空间。


两种思路:
1、第一种就是比较整数x的第一个元素和末尾元素,是否相等,不等直接false;否则,刨除掉这两个元素后,继续比较第一个元素和末尾元素,重复上述步骤。

bool isPalindrome(int x) {    if(x < 0) {return false;}int i, j, d = 0;int t = x;while(t) {t/=10;d++;}i = 1;j = pow(10,d-1);while(i <= j) {if(x/j%10 != x/i%10) {return false;}j/=10;i*=10;}return true;}
2、另一种就是相当于按照x的元素(从最末开始到最前)从0开始重新构建一个新的数,最后判断这个新的数跟x是不是相等的。

bool isPalindrome(int x) {    bool isPal = true;int a = 0;int t = x;if (x < 0) {isPal = false;} else {while (x) {a = a * 10 + x % 10;x /= 10;}isPal = (a == t ? true : false);}return isPal;}

原创粉丝点击