首页 > 其他分享 >最长回文子串

最长回文子串

时间:2022-10-21 21:13:52浏览次数:95  
标签:子串 center len str 指针 最长 回文

输入:s = "babad"
输出:"bab"
解释:"aba" 同样是符合题意的答案。

class Solution:
    def longestPalindrome(self, s: str) -> str:
        palindrome=""
        #中心扩散法:此中心是从0开始的,一共将测试len(s)个中心
        for center in range(0,len(s)):
            #len(s)为奇数的情况
            l = center-1
            r = center+1
            #需要满足条件1.左指针大于等于0,右指针小于len(s),并且一直要确保s[l]==s[r]才能进行继续扩散
            while(l>=0 and r <len(s) and s[l]==s[r]):
                l-=1
                r+=1
            #扩散到不等时
            if len(palindrome)<r-l-1:
                #左指针要加一,因为左开右闭,所以右指针作为索引不用加一
                palindrome=s[l+1:r]
                
            #len(s)为偶数的情况
            l=center
            r=center+1
            while(l>=0 and r <len(s) and s[l]==s[r]):
                l-=1
                r+=1
            if len(palindrome)<r-l-1:
                palindrome=s[l+1:r]
        return palindrome

标签:子串,center,len,str,指针,最长,回文
From: https://www.cnblogs.com/szj666/p/16814761.html

相关文章

  • AcWing 895.最长上升子序列Ⅰ
    题目链接:http://www.acwing.com/problem/content/897/浅浅复习放AC代码1#include<bits/stdc++.h>2usingnamespacestd;34constintN=1010;5intn;......
  • #yyds干货盘点# LeetCode 腾讯精选练习 50 题:最长回文子串
    题目:给你一个字符串s,找到s中最长的回文子串。 示例1:输入:s="babad"输出:"bab"解释:"aba"同样是符合题意的答案。示例2:输入:s="cbbd"输出:"bb"代码实现:publicclassSo......
  • 基础结构:链表 回文链表
    1.问题描述给你一个单链表的头节点head,请你判断该链表是否为回文链表。如果是,返回true;否则,返回false。示例1:image.jpg输入:head=[1,2,2,1]输出:true示例2:imag......
  • 799. 最长连续不重复子序列
    给定一个长度为n的整数序列,请找出最长的不包含重复的数的连续区间,输出它的长度。输入格式第一行包含整数n。第二行包含n个整数(均在0∼105范围内),表示整数序列。输出......
  • leetcode 最长回文子串
    constcountSubstrings=(s)=>{conststrLen=s.length;letnumOfPalindromicStr=0;//初始化一个二维数组letdp=Array.from(Array(strLen),()=>A......
  • 动态规划(二)最长递增子序列
    最长递增子序列给你一个整数数组nums,找到其中最长严格递增子序列的长度。子序列是由数组派生而来的序列,删除(或不删除)数组中的元素而不改变其余元素的顺序。例如,[3,6,......
  • 连续最长日期
    fromdatetimeimportdatetimedefcalculate_consecutive_dates(dates_str:str):max_consecutive_days=0temp_flag=0dates_list=dates_str.split(",")......
  • HDU 3068 最长回文——————Manacher
    最长回文TimeLimit:4000/2000MS(Java/Others)MemoryLimit:32768/32768K(Java/Others)TotalSubmission(s):30806AcceptedSubmission(s):11310ProblemDescrip......
  • HDU 1431 素数回文——————离线暴力打表
    素数回文TimeLimit:2000/1000MS(Java/Others)MemoryLimit:65536/32768K(Java/Others)TotalSubmission(s):23585AcceptedSubmission(s):5550ProblemDescript......
  • 51Nod 1088 最长回文子串——————Manacher,马拉车算法
    ​​51Nod1088最长回文子串​​基准时间限制:1秒空间限制:131072KB分值:0难度:基础题回文串是指这种左右对称的字符串。输入一个字符串,输出里最长回文子串的长度。I......