LeetCode Palindrome Number
2404 ワード
LeetCode解題のPalindrome Number
原題
int型の数字が返信形式であるかどうかを判断し、余分な空間を使用してはいけない.
注意点:負数はいずれも不回文数 である.余分なスペースを使用してはいけません 例:
入力:x=123出力:False
入力:x=12321出力:True
問題を解く構想.
回文数であるか否かを判断する以上,数の先頭と末尾の2つの数を順次取得して等しいか否かを判断する.まずforサイクルで数字の最上位を取得すると、最初から各数字を取得し、%操作で最後から各数字を取得できます.操作を容易にするために、比較した数字を取り除くことができます.注意しなければならないのは、首尾を外した後、元の最高位を10ではなく100で割ることです.
ACソース
私のGithub(https://github.com/gavinfish/LeetCode-Python)を使用して、関連するソースコードを取得します.
原題
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)を使用して、関連するソースコードを取得します.