给你一个整数 x ,如果 x 是一个回文整数,返回 true ;否则,返回 false 。
回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。例如,121 是回文,而 123 不是。
示例 1:
输入:x = 121 输出:true 示例 2:
输入:x = -121 输出:false 解释:从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。 示例 3:
输入:x = 10 输出:false 解释:从右向左读, 为 01 。因此它不是一个回文数。 示例 4:
输入:x = -101 输出:false
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/palindrome-number
较为简单的做法是,将这个正数先转为字符串,然后将该字符串逆序,判断逆序前与逆序后是否相等即可。
class Solution(object): def isPalindrome(self, x): """ :type x: int :rtype: bool """ str_input = str(x) # 将int转化为str str_mid = str_input[::-1] # 将原字符串逆序 res = False if str_input==str_mid: # 比较逆序前后是否相同 res = True return res
编写一个函数来查找字符串数组中的最长公共前缀。
如果不存在公共前缀,返回空字符串 “”。
示例 1:
输入:strs = ["flower","flow","flight"] 输出:"fl" 示例 2:
输入:strs = ["dog","racecar","car"] 输出:"" 解释:输入不存在公共前缀。
提示:
1 <= strs.length <= 200 0 <= strs[i].length <= 200 strs[i] 仅由小写英文字母组成
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/longest-common-prefix
由于在最理想的情况下,最长公共前缀为这个list中长度最短的那个字符串。因此这个最长公共前缀的长度不可能大于list中任意一个字符串的长度,故首先找到这个list所有字符串长度的最小值。
从第一位开始比较每个字符串各个位置对应的字符是否相同,如果所有字符串的该位置字符全部相同,则将该元素添加至结果数组;否则直接跳出循环,程序结束。
最后通过判断数组长度对应题目要求输出即可。
class Solution(object): def longestCommonPrefix(self, strs): """ :type strs: List[str] :rtype: str """ mid = [] # 存储结果数组 res = "" #存储最终结果 min_length = len(strs[0]) # 记录所有字符串长度的最小值 for i in range(1,len(strs)): mid_length = len(strs[i]) if mid_length<=min_length: # 更新最小值 min_length = mid_length for i in range(min_length): # 从每个字符串的第一个字符开始遍历判断 mid_str = strs[0][i] # 记录当前判断的字符 flag = 1 # 结果判定的标识位 for j in range(1,len(strs)): if strs[j][i]!=mid_str: # 匹配不上,更改标识位,跳出当前内层循环 flag = 0 break if flag ==1: # 当前字符匹配成功,加入结果数组 mid.append(mid_str) if flag==0: # 当前字段匹配失败,终止程序 break if len(mid)>0: # 根据题目要求正确输出对应格式 res = "".join(mid) else: res = "" return res