leetcode

2018-12-03  本文已影响0人  二十岁的弹簧

题目:判断一个数字是否问回文数

负数不是回文数

# 1.我的想法,将数字翻转,看是否与原先的数字相同
# 2.在翻转过程中就进行判断是否相同,伪折半对比
# 3.折半对比,判断逻辑更优美简洁,循环逻辑折半
class Solution:
    def one(self, s):
        if s < 0:
            return False
        ret = 0
        target = s
        while s > 0:
            ret = ret * 10 + s % 10
            s = s // 10
        if ret == target:
            return True
        else:
            return False
    
    def two(self, s):
        if s < 0:
            return False
        found = False
        ret = 0
        target = s
        while s > 0:
            ret = ret * 10 + s % 10
            if ret == s:
                found = True
                break
            s = s // 10
            if ret == s:
                found = True
                break
        return found
    
    def three(self, s):
        if s < 0:
            return False
        ret = 0
        while ret < s:
            ret = ret * 10 + s % 10
            s = s // 10
        found = (ret == s) or (ret // 10 == s)
        return found
上一篇 下一篇

猜你喜欢

热点阅读