不使用额外空间判断整形数字是否回文
2017-05-19 17:18
281 查看
先来个使用额外空间的简单版本,其实就是将数组转换为字符串后使用判断回文字符串的方式就行
def isPalindrome(self, x):
if x<0:
return False
x = str(x)
odd = len(x)%2
i,j = 0,0
if odd:
i = len(x)/2
j = len(x)/2
else:
i = len(x)/2
j = i-1
while i>=0 and j<len(x):
if x[i]!=x[j]:
return False
i -= 1
j += 1
return True
再来个不使用额外空间的版本
def isPalindrome(self, x):
if x<0 or (x!=0 and x%10==0):
return False
rev = 0
while rev<x:
rev = rev*10 + x%10
x = x/10
return x==rev or x==rev/10
def isPalindrome(self, x):
if x<0:
return False
x = str(x)
odd = len(x)%2
i,j = 0,0
if odd:
i = len(x)/2
j = len(x)/2
else:
i = len(x)/2
j = i-1
while i>=0 and j<len(x):
if x[i]!=x[j]:
return False
i -= 1
j += 1
return True
再来个不使用额外空间的版本
def isPalindrome(self, x):
if x<0 or (x!=0 and x%10==0):
return False
rev = 0
while rev<x:
rev = rev*10 + x%10
x = x/10
return x==rev or x==rev/10
相关文章推荐
- 判断一个数字是否为回文,不使用额外的存储空间
- Lettcode_9_Palindrome Number ——判断一个数字是否回文(不能申请额外空间)
- java 编写程序实现从控制台接收一个 5 位以上的整数,使用数组来判断该数字 * 是否是回文数。(例如:789987,12344321是回文数)
- 不使用任何额外变量判断回文数字(6行代码)
- 不用额外空间判断一个数是否是回文形式
- 不使用额外空间,检查整数是否是回文结构
- 2. 编写一个Java应用程序,用户从键盘输入一个1~9999之间的数,程序将判断这个数是几位数,并判断这个数是否是回文数。回文数是指将该数含有的数字逆序排列后得到的数和原数相同,例如12121、32
- 判断一个数字是否是回文
- 判断用户输入的数字是否为99,并将不是数字之和打印出来,巧妙使用break和continue。
- 判断数字是否是回文
- 判断是否是回文数字的函数(java)
- 使用JS判断是否数字和小数点组合的数字的两中方法比较(isNaN和逐判断)
- 牛腩新闻 aspnetpager分页(使用GridView 分页,使用多表查询)判断传入id是否为数字是否为空 aspnetpager的CSS美化(判断类别是否为数字/空)
- 使用位图法判断整形数组是否存在重复 (待续)
- 【华为面试题】给定一个数字(整数),判断它是否回文
- javascript使用isNaN()函数判断变量是否为数字
- 判断一个数字是否是回文
- 使用JS判断是否数字和小数点组合的数字的两中方法比较-isNaN和逐判断[转载]
- 经常使用的判断string是否为数字的函数
- 使用位图法判断整形数组是否存在重复