首页 > 代码库 > leetcode Palindrome Number Python

leetcode Palindrome Number Python

题目:Determine whether an integer is a palindrome. Do this without extra space.

  刚开始看到题目的时候想着用栈来处理,每进来一个数与栈顶元素比较相同则栈顶元素处栈,不同则元素入栈,最后栈为空或剩一个数为真,我是以“1234321”来考虑的,但是提交的时候发现存在“100”此种情况,因此分为两种类型来处理,奇数个数和偶数个数。

  放了十一放的一直心不在焉的,怕累没出去玩,呆着似乎更累。师兄师姐都出去找工作啦,God bless them。

  代码如下:

 1 class Solution: 2     # @return a boolean 3     def isPalindrome(self, x): 4         if(x<0): 5             return False 6         elif(0<=x<10): 7             return True 8         else: 9             stack=[]10             tmp_str=str(x)11             if(len(tmp_str)%2==0):12                 for i in xrange(len(tmp_str)):13                     if(len(stack)==0):14                         stack.append(tmp_str[i])15                     elif(stack[-1]==tmp_str[i]):16                         del(stack[-1])17                     else:18                         stack.append(tmp_str[i])19                 if(len(stack)==0):20                     return True21                 else:22                     return False23             else:24                 mid=len(tmp_str)/225                 tmp_a=tmp_str[0:mid]26                 end=len(tmp_str)27                 tmp_b=tmp_str[mid+1:end]28                 if(tmp_a==tmp_b[::-1]):29                     return True30                 else:31                     return Fals

leetcode Palindrome Number Python