LeetCode Palindrome Number


LeetCode解題のPalindrome Number
原題
int型の数字が返信形式であるかどうかを判断し、余分な空間を使用してはいけない.
注意点:
  • 負数はいずれも不回文数
  • である.
  • 余分なスペースを使用してはいけません
  • 例:
    入力:x=123出力:False
    入力:x=12321出力:True
    問題を解く構想.
    回文数であるか否かを判断する以上,数の先頭と末尾の2つの数を順次取得して等しいか否かを判断する.まずforサイクルで数字の最上位を取得すると、最初から各数字を取得し、%操作で最後から各数字を取得できます.操作を容易にするために、比較した数字を取り除くことができます.注意しなければならないのは、首尾を外した後、元の最高位を10ではなく100で割ることです.
    ACソース
    class Solution(object):
        def isPalindrome(self, x):
            """ :type x: int :rtype: bool """
            if x < 0:
                return False
            div = 1
            while x / div >= 10:
                div *= 10
            while x > 0:
                l = x // div
                r = x % 10
    
                if l != r:
                    return False
                x %= div
                x //= 10
                div /= 100
            return True
    
    
    if __name__ == "__main__":
        assert Solution().isPalindrome(123) == False
        assert Solution().isPalindrome(12321) == True
        assert Solution().isPalindrome(-121) == False
    

    私のGithub(https://github.com/gavinfish/LeetCode-Python)を使用して、関連するソースコードを取得します.