一、给你一个字符串 s,找到 s 中最长的回文子串。
示例 1:
输入:s = “babad”
输出:“bab”
解释:“aba” 同样是符合题意的答案。
示例 2:
输入:s = “cbbd”
输出:“bb”
代码实现
class Solution(object):
def longestPalindrome(self, s):
res = ''
for i in range(len(s)): # i=0 i=1 i=2 3 4
start = max(i - len(res) - 1, 0) # start=0 0 0 0 0
temp = s[start: i + 1] # s[0:1]=b s[0:2]=ba s[0:3]=bab s[0:4]=baba s[0:5]=babad
if temp == temp[::-1]: # True ba!=ab True False F
res = temp # res=b res=bab
else:
temp = temp[1:] # temp=a bab
if temp == temp[::-1]: # True true
res = temp # res=a bab
return res
s = 'babab'
ss = Solution()
res = ss.longestPalindrome(s)
print(res)
二、判断是否是回文数
左括号必须用相同类型的右括号闭合。
左括号必须以正确的顺序闭合。
每个右括号都有一个对应的相同类型的左括号。
示例 1:
输入:s = “()”
输出:true
示例 2:
输入:s = “()[]{}”
输出:true
示例 3:
输入:s = “(]”
输出:false
代码实现
def func(s):
dic = {"(": ")", "{": "}", "[": "]", "?": "?"}
l = ["?"]
for item in s:
if item in dic:
l.append(item)
elif dic[l.pop()] != item:
return False
return len(l) == 1
s = "("
res = func(s)
print(res)
三、给你一个整数 x ,如果 x 是一个回文整数,返回 true ;否则,返回 false 。
回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。
例如,121 是回文,而 123 不是。
示例 1:
输入:x = 121
输出:true
示例 2:
输入:x = -121
输出:false
解释:从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。
示例 3:
输入:x = 10
输出:false
解释:从右向左读, 为 01 。因此它不是一个回文数。
来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/palindrome-number
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
代码实现
def fun4():
num=123321
s=str(num)
for i in range(len(s)//2):
if s[i]!=s[-i-1]:
print(False)
break
else:
print(True)
fun4()
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/123178.html