上一篇面试题中,我们使用了 埃拉托斯特尼筛法 去统计给定范围内质数的个数(LeetCode No.204),还是有点烧脑的。今天我们来分析一道相对轻松的字符串面试题吧,恰好大家从Python 100天中学到的字符串知识可以派上用场。
今天要给大家分析的面试题是 LeetCode 上第 9 号问题,
LeetCode - 9. 回文数
https://leetcode-cn.com/problems/palindrome-number/
题目描述
判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。
示例 1:
1
2
输入: 121
输出: true
示例 2:
1
2
3
输入: -121
输出: false
解释: 从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。
示例 3:
1
2
3
输入: 10
输出: false
解释: 从右向左读, 为 01 。因此它不是一个回文数。
- 题目难度:简单
- 通过次数:182.9K
- 提交次数:322.9K
-
贡献者:LeetCode
- 相关话题
- 相似题目
解题思路:
- 先将原数转为字符串
str0
- 反转步骤1中的字符串
str0
得到字符串reversedStr
,判断其是否与反转前相等。而 Python 中字符串反转有如下两种常用方法:- 使用切片功能,即
reversedStr = str0[::-1]
- 使用
reversed
函数,reversedStr = ''.join(list(reversed(str0)))
- 使用切片功能,即
- 解决特殊情况
- 输入的数为负的,前面有
-
,反转后显然不相等
- 输入的数为负的,前面有
已AC
的代码为:
1
2
3
4
5
6
7
8
9
10
class Solution:
def isPalindrome(self, x: int) -> bool:
if x < 0:
return False
else:
str0 = str(x)
reversedStr = str0[::-1]
if reversedStr == str0:
return True
return False
执行用时: 64 ms
, 在所有 python3 提交中击败了98.39%
的用户.
示例代码: https://github.com/JustDoPython/leetcode-python/tree/master/leetcode-009
文档信息
- 本文作者:Bravo Yeung大白技术控
- 本文链接:https://web.geekplayers.com/python-leetcode9-palindrome-number.html
- 版权声明:本文为博主原创或转载文章,欢迎转载,但转载文章之后必须在文章页面明显位置注明出处,否则保留追究法律责任的权利。如您有任何疑问或者授权方面的协商,请留言。)
Show Disqus Comments