回文数

  1. 回文数
    1. 题目描述
    2. 思路
    3. 代码
      1. 翻转字符串
      2. 首尾遍历字符串
      3. 首尾遍历list

回文数

题目地址:回文数

题目描述

判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。

示例 1:

输入: 121
输出: true

示例 2:

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

示例 3:

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

思路

  • 转换成字符串,翻转,看是否和之前字符串相同
  • 转换成字符串,设置首尾指针,看首尾指针指向的字符是否相同
  • 将整数的每一位保存进list,设置首尾指针,看首尾指针是否相同

代码

翻转字符串

def isPalindrome(x):
    str_x = str(x)
    str_x_reverse = str_x[::-1]
    if str_x == str_x_reverse:
        return True
    else:
        return False

首尾遍历字符串

def isPalindrome2(x):
    str_x = str(x)
    first, last = 0, len(str_x) - 1
    flag = True
    while first <= last:
        if str_x[first] == str_x[last]:
            first += 1
            last -= 1
        else:
            flag = False
            break
    return flag

首尾遍历list

def isPalindrome3(x):
    if x < 0:
        return False
    num_list = []
    flag = True
    while x:
        num_list.append(x % 10)
        x //= 10
    first, last = 0, len(num_list) - 1
    while first <= last:
        if num_list[first] == num_list[last]:
            first += 1
            last -= 1
        else:
            flag = False
            break
    return flag

转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 changzeyan@foxmail.com

×

喜欢就点赞,疼爱就打赏