Discuss / Python / 写了一种字符串,后面想到好像也可以直接纯用数字运算

写了一种字符串,后面想到好像也可以直接纯用数字运算

Topic source
def get_num_len(n):
    n = int(n)
    n_len = 1    while True:
        n = int(n / 10)
        if n == 0:
            break        n_len += 1    return n_len


def is_palindrome(n):
    n_len = get_num_len(n)
    if n_len % 2 == 0:
        tem_mul = 10 ** int(n_len / 2)
        left_n = int(n / tem_mul)
        right_n = n - left_n * tem_mul
    else:
        tem_mul = 10 ** int((n_len - 1) / 2)
        left_n = int(n / tem_mul)
        right_n = n - left_n * tem_mul
        left_n = int(left_n / 10)
    if left_n >= 10:
        left_n_len = get_num_len(left_n)
        tem_sum = 0        tem_left_n = left_n
        for i in range(left_n_len, 0, -1):
            tem_sum += int(tem_left_n % 10 * (10 ** (i - 1)))
            tem_left_n = int(tem_left_n / 10 ** (left_n_len - i + 1))
        left_n = tem_sum
    return left_n == right_n

  • 1

Reply