一、前记(3/4)
呃啊......若不是作业太多我应该还可以再更新一下咕咕了好久的爬虫blog。最近事情好多,复盘省赛,写实验报告,考试复习,还要复习考研(修正带也用完了),基本都没有什么时间去放空自己了。
二、算法题目
这次做了一个比较经典的回文数题目

三、题目分析
1、我的分析
这道题和我第二道算法有点类似,直接就是将字符串倒序,然后看和原数字是否相等。如果和原数字相等就为回文数。在本题里面题目还加了一个条件(让题目变得简单了),如果是负数直接判定为False。
(Python3)
①转化成字符串
def isPalindrome(self, x):
if x >= 0 :
y=int(str(x)[::-1])
if x==y:
return True
else:
return False
else:
return False
②对于①的优化版本
def isPalindrome(self,x):
if str(x) == str(x)[::-1]:
return True
else:
return False
③整数转化
def isPalindrome(self, x: int) -> bool:
if x < 0:
return False
m, n = x, 0
while m:
n = n * 10 + m % 10
m = m // 10
if x == n:
return True
else:
return False
(C)
bool isPalindrome(int x){
if(x<0)
return false;
long y=0;
int temp=x;
while(temp!=0){
y=y*10+temp%10;
temp/=10;
}
if(y==x)
return true;
return false;
}
2、别人的分析
(python3)
有一个家伙,他首先是排除了负数。然后将正数变成字符串。因为回文数的特征就是首尾的数字相同,例:121,1221...这个家伙,利用list的性质,进行首尾比较。
class Solution:
def isPalindrome(self, x: int) -> bool:
if x<0 :
return False
else:
s=str(x)
for i in range(len(s)//2):
if s[i] != s[len(s)-i-1]:
return False
return True
四、学到了什么?
练了练手,学到了更开阔的思路!!!下次继续加油