C语言 最长回文子串[通俗易懂]

C语言 最长回文子串[通俗易懂]描述:输入一个字符串,求其中最长回文子串。子串的含义是:在字符串中连续出现得字符串片段。回文的含义是,正着看和倒着看是相同的,如abba何abbebba。在判断时要求忽略所有的标点和空格,且忽略大小写。但输出时按原样输出(首尾不要输出多余的字符串).输入字符串长度大于等于1小于等于5000.且单独占一行。输入:输入一行字符串。输出:输出所要求的回文子串。样例输入:L…

大家好,又见面了,我是你们的朋友全栈君。

描述:输入一个字符串,求其中最长回文子串。子串的含义是:在字符串中连续出现得字符串片段。回文的含义是,

正着看和倒着看是相同的,如abba何abbebba。在判断时要求忽略所有的标点和空格,且忽略大小写。但输出时按原样输出

(首尾不要输出多余的字符串).输入字符串长度大于等于1小于等于5000.且单独占一行。

输入:

输入一行字符串。

输出:

输出所要求的回文子串。

样例输入:

Last Week,todo level odot,King

样例输出:

k,todo level odot,K

代码:

#include<stdio.h>
#include<string.h>
#include<ctype.h>
int main()
{
    char s[5000],s1[5000];int i,j,m=0,pri[5000],max=0,x,y,n;
    gets(s);
    n=strlen(s);
    for (i=0;i<n;i++)
    {

      if(isalpha(s[i]))
      {
          pri[m]=i;
          s1[m++]=toupper(s[i]);

      }
    }
    for (i=0;i<m;i++)
    {

            for (j=0;j<=i&&i+j<m;j++)
        {
            if(s1[i-j]!=s1[i+j])break;//奇数
            if((2*j+1)>max)
              {
                  max=2*j+1;
                  x=pri[i-j];
                  y=pri[i+j];
              }
        }
             for (j=0;j<=i&&i+j<m;j++)
        {
            if (s1[i-j]!=s1[i+j+1])break;//偶数
            if ((2*j+2)>max)
            {
                max=2*j+2;
                x=pri[i-j];
                y=pri[i+j+1];
            }
        }


    }
    for (i=x;i<=y;i++)
        printf("%c",s[i]);
    return 0;
}

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/134020.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Tomcat启动一闪而过就消失的原因和解决方法

    Tomcat启动一闪而过就消失的原因和解决方法Tomcat启动一闪而过怎么办?这成为了许多刚接触tomcat开发环境工作者的一个大问题,许多用户朋友都不知道是因为什么问题导致出现这种情况,下面就一起来了解一下吧。原因一: (1)首先要搞明白启动不起来的原因。方法是在命令行下,运行startup.bat文件,这样程序就不会一闪而过,而会将启动不起来的原因打印到窗口上。(2)在命令行下启动tomcat的方法读者应该都很清楚,大体就是:cmd启动命…

    2022年6月21日
    80
  • opencv角点检测学习总结[通俗易懂]

    opencv角点检测学习总结[通俗易懂]学习opencv角点检测如果一个点在两个正交方向上都有明显的导数,则我们认为此点更倾向于是独一无二的,所以许多可跟踪的特征点都是角点。一下为角点检测中用到的一些函数cvGoodFeaturesToTrack采用Shi和Tomasi提出的方法,先计算二阶导数,再计算特征值,它返回满足易于跟踪的定义的一系列点。voidcvGoodFeaturesToTrack(

    2022年8月30日
    7
  • 复杂指针声明解析

    复杂指针声明解析

    2022年2月5日
    45
  • route add 添加路由参数错误_route删除路由

    route add 添加路由参数错误_route删除路由routeadd命令的主要作用是添加静态路由,通常的格式是:routeADD157.0.0.0MASK255.0.0.0157.55.80.1METRIC3IF2参数含义:^destination^mask^gatewaymetric^^interfacedestination【网段地址】mask【子网掩码】gateway【网关地址】metric【路由跳数…

    2022年8月12日
    62
  • 【实践与问题解决38】win10桌面图标变成一个空白图标「建议收藏」

    【实践与问题解决38】win10桌面图标变成一个空白图标「建议收藏」1问题描述:桌面部分图标显示空白但是点击可以正常打开程序(快捷方式没有改变路径依旧可以打开程序)2问题原因:Windows10系统中,为了加速图标的显示,当第一次对图标进行显示时,系统会对文件或程序的图标进行缓存。之后,当我们再次进入到某个文件夹需要显示该图标时,系统会直接从缓存中读取数据,从而大大加快显示速度。也正因为如此,当缓存文件出现问题时,就会引发系统图标显示不正常。3解决方案:3.1方案一:只需要将有问题的图标缓存文件删除掉,让系统重新建立图标缓存即可。第一步:

    2022年10月9日
    3
  • IIS Express ArgumentOutOfRangeException

    IIS Express ArgumentOutOfRangeException

    2022年3月6日
    42

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号