题目概述:
Determine whether an integer is a palindrome. Do this without extra space.
题目分析:
判断数字是否是回文 例如121、656、3443
方法有很多,正着看和到着看两数相同;当然负数显然不是回文
我的方法:
第一种方法:
由于没有没有看到前面的without extra space。采用的方法是把数字转换为字符串,依次比较最前和最后两个字符是否相同,直到遍历完毕。
第二种方法:
通过依次比较最高位和最低位数字,然后依次数字降低两位。要点是先计算最高位是多少位。需要注意计算高位时:x=x-(left*result)例如110011 高位-1 低位-1 110011-100000=10011 10011/10=1001再判断,而%会出现错误。
Valid Palindrome
Given a string, determine if it is a palindrome, considering only alphanumeric characters and ignoring cases.
For example,
"A man, a plan, a canal: Panama" is a palindrome.
"race a car" is not a palindrome.
该题目主要是判断字符串是否是回文,其中仅仅是字母和数字组成,需要删除额外字符。注意:大小写字母可以相同'z'=‘Z’,大写字母转小写字母加32即可。
判读一个字符串是否是回文,一种方法可以将字符串倒置然后和原字符串进行比较。这里采用一种类似字符串翻转的方法,通过从前后两个方向来比较判断是否是回文。自己AC感觉还行,代码如下:
最后希望文章对你有所帮助,如果文章中有错误或不足之处,还请海涵~
(By:Eastmount 2021-7-31 夜于武汉)