算法题——给你一个字符串s,找到s中最长的回文子串。

在人生的道路上,不管是潇洒走一回,或者是千山独行,皆须是自己想走的路,虽然,有的人并不是很快就能找到自己的方向和道路,不过,只要坚持到底,我相信,就一定可以找到自己的路,只要找到路,就不必怕路途遥远了。

导读:本篇文章讲解 算法题——给你一个字符串s,找到s中最长的回文子串。,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com,来源:原文

在这里插入图片描述


一、给你一个字符串 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

(0)
飞熊的头像飞熊bm

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!