0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

[力扣05]最长回文子串是什么

汽车电子技术 来源:C语言Plus 作者: Maye426 2023-02-27 14:34 次阅读

教程使用C++版本编写代码,如需其他版本,请自行修改,并在力扣网站中测试!

题目描述

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

示例1:

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

示例2:

输入:s = "cbbd"
输出:"bb"

提示:

  • 1 <= s.length <= 1000
  • s 仅由数字和英文字母组成

C++题目源码:

class Solution {
public:
    string longestPalindrome(string s)
     {
         if(s.length()==0)
         {
             return "";
         }
         int size=s.length();
         int left=0;
         int right=0;
         int len=1;
         int maxPos=0;
         int maxLen=0;
         for(int i=0;i<size;i++)
         {
            left=i-1;
            right=i+1;
            //左边
            while(left>=0&&s[left]==s[i])
            {
                len++;
                left--;                
            }
            //右边
            while(right<size&&s[right]==s[i])
            {
               len++;
               right++;     
            }
            //左边和右边对称
            while(left>=0&&right<size&&s[left]==s[right])
            {
                len+=2;
                left--;
                right++;
            }
            if(len>maxLen)
            {
                maxLen=len;
                maxPos=left;
            }
            len=1;
         }
         return s.substr(maxPos+1,maxLen);
    }
};
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • C++
    C++
    +关注

    关注

    21

    文章

    2066

    浏览量

    72901
  • 代码
    +关注

    关注

    30

    文章

    4556

    浏览量

    66814
  • 编写
    +关注

    关注

    0

    文章

    29

    浏览量

    8373
收藏 人收藏

    评论

    相关推荐

    数据结构:判断链表回文结构

    给定一个链表,判断该链表是否为回文结构。回文是指该字符串正序逆序完全一致。如当输入链表 {1,2,3,2,1} 时,断定是回文结构,输出True。
    的头像 发表于 12-01 13:26 352次阅读
    数据结构:判断链表<b class='flag-5'>回文</b>结构

    C++刷题记之最长回文字符串,让我们从C++做题到放弃

    编程语言C++语言
    电子学习
    发布于 :2023年01月14日 11:40:15

    下载E币问题

    每次下载怎么2个E币,但显示是只需要一个E币?
    发表于 07-02 07:42

    利用labview工具里导出字符代码包含vi吗

    请问大神,利用labview工具里高级,导出字符代码,包含vi吗
    发表于 08-18 21:24

    关于VI输出变量疑问

    给我大神好!我是新手,请教一下,串口通信时,字符输出放在Case结构True中,且放在VI中,当False发生时,为什么此字符输出作为VI的输出端子时,会变空字符
    发表于 06-27 09:35

    Linux Shell系列教程之Shell字符用法

    $substring的${string##substring}从变量$string的开头, 删除最长匹配$substring的${s
    发表于 08-29 16:01

    格式化发送字符到HC05的功能

    这个模块提供了格式化发送字符到HC05的功能,占用stm32的串口31.头文件#ifndef __HC_05#define __HC_05/*本模块为HC
    发表于 08-11 08:41

    python判断是否包含的7种方法

    ;lol" in "hello, python"False2、使用 find 方法使用 字符 对象的 find 方法,如果有找到,就可以返回指定子在字符
    发表于 04-08 15:15

    简单的钥匙pcb

    描述钥匙项目
    发表于 06-24 07:01

    自制GCJC钥匙

    描述GCJC 钥匙
    发表于 08-01 06:17

    C语言教程之回文素数

    C语言教程之回文素数,很好的C语言资料,快来学习吧。
    发表于 04-22 17:45 0次下载

    C语言教程之回文字符串

    C语言教程之回文字符串,很好的C语言资料,快来学习吧。
    发表于 04-25 15:49 0次下载

    小米MIX:“史上最长寿”?

    如果问谁会是智能手机里,“寿命最长”的型号?
    发表于 02-19 09:30 686次阅读

    word文档解密方法说明

    word文档解密方法,当我们求取最长回文子串时,常见的方法就是中心扩散法,即从字符中心出发,向两边对比,检查是否相等,若等于,则继续检查,并使当前字符中心对应的最长回文子串长度加一,否
    的头像 发表于 03-14 09:05 1423次阅读

    如何用python判断字符串是否为回文

    用两个变量left,right模仿指针(一个指向第一个字符,一个指向最后一个字符),每比对成功一次,left向右移动一位,right向左移动一位,如果left与right所指的元素不相等则退出,最后比较left与right的大小,如果left>right则说明是回文字符串。
    的头像 发表于 03-08 11:04 1420次阅读