Loading

Leetcode - 9. 回文数

给你一个整数x,如果x是一个回文整数,返回true;否则,返回false
回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。例如,121是回文,而123不是。

示例 1:

输入:x = 121
输出:true

示例 2:

输入:x = -121
输出:false
解释:从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。

示例 3:

输入:x = 10
输出:false
解释:从右向左读, 为 01 。因此它不是一个回文数。

示例 4:

输入:x = -101
输出:false

提示:
-231 <= x <= 231 - 1

进阶:你能不将整数转为字符串来解决这个问题吗?

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/palindrome-number
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

True/False、1/0

true默认是没有定义的,默认的是Trueleetcode是自己定义了true?,不是,

改成return True试试,

好家伙,但是True不是==1的吗?测试True==1或者False==0都返回True
难道,python中,函数返回bool1/0不一样?

确实不一样,虽然他们的值一样(通过==)判断,但是他们的id不一样(通过is判断)
所以,bool返回类型,还是得返回True/False,而不是1/0

解1 2021/8/25 O(n)

def isPalindrome(x: int) -> bool:
    # 处理掉简单的情况
    ### 错误 - 1
    if x<0: return False
    if x in range(0,10): return True

    s=str(x)
    len=s.__len__()
    x=0;y=len-1
    while x<y:
        if s[x]!=s[y]: return False
        x+=1;y-=1
    return True
    ### 错误 - 1

if __name__ == '__main__':
    ### 错误
    # 1, True/False和1/0不一样,bool应该返回True/False,而不是1/0
    print(isPalindrome(121))
    print(isPalindrome(10))
    print(isPalindrome(-101))
    print(isPalindrome(-1))
    print(isPalindrome(0))
    print(isPalindrome(-0))
    print(isPalindrome(989989))
    print(isPalindrome(9891989))
    print(isPalindrome(11111))
    print(isPalindrome(22))
    print(isPalindrome(00))

posted @ 2021-08-25 08:35  wwcg2235  阅读(58)  评论(0)    收藏  举报