当前位置: 首页 > news >正文

湘大oj-回文串问题练习

一.思路分析

假设原字符串是 s,长度是 n
我们要在末尾添加一些字符,使整个字符串变成回文串。
那么,最终的回文串长度至少是 n,最多是 2n-1(极端情况是原字符串完全不回文,需要补几乎整个逆序串)。

关键点
因为只能在末尾添加字符,所以原字符串的前面部分必须与末尾部分对称。
也就是说,原字符串最长的“后缀回文”部分可以保留,我们只需要补上前面不匹配的部分的逆序。

二.算法步骤

  1. 从 i = 0 到 n-1,检查子串 s[i..n-1] 是否是回文。

  2. 找到第一个(最小的 i)使得 s[i..n-1] 是回文。

  3. 需要添加的字符数就是 i(因为 s[0..i-1] 需要逆序补到末尾)。

                                                     最终AC代码

#include<stdio.h>
#include<string.h>
int pd(char*s)
{int len=strlen(s);for(int i=0;i<len/2;i++){if(s[i]!=s[len-1-i])return 0;}return 1;
}
int main()
{int t;scanf("%d",&t);while(t--){char s[1010];scanf("%s",s);int n=0;int len=strlen(s);char si[1010];for(int j=0;j<len;j++){strncpy(si,s+j,len-j);si[len-j]='\0';if(pd(si)){printf("%d\n",j);break;}}}return 0;
}

http://www.dtcms.com/a/517624.html

相关文章:

  • C语言——链表的基础操作
  • 单页面竞价网站衡水电商网站建设价格
  • 做海报的网站知乎个人推广app的妙招
  • 如何管理好一个网站wordpress主题百度
  • 上海平台网站建设报价在韩国注册公司需要什么条件
  • 老板说做个网站我要怎么做江宁滨江网站建设
  • 网站建设课程大纲聊城手机网站建设电话
  • Heroku 部署及问题解决
  • 如何做网站热力图yii2 wordpress
  • 锦州市做网站自助建站平台搭建
  • 网站的模块怎么做网站建设方案书写
  • 俄语 网站app store怎么调回中文
  • 贵州专业网站建设公司哪家好纯静态企业网站
  • 水产养殖网站模板源码网站建设与管理实训总结
  • php网站建设找哪家好wordpress 图片路径
  • 【GD32】分散加载文件.sct
  • 桥西做网站什么网站做禽苗好的网站
  • 嵌入式C语言与标准C语言的区别所在
  • 延迟消息、Elasticsearch的安装
  • 搭建网站难吗wordpress 多域名绑定域名
  • 珠宝类企业网站(手机端)科技作品
  • [算法导论] 1≤n≤15,n个整数组成的数组,输出所有不重复且满足条件的排列组合
  • 阿里巴巴怎么建设网站wordpress+百度云图安装
  • siteservercms做的网站在后台进行修改教程服务器打不开网站
  • php网站里放asp极酷wordpress
  • Spring Cloud - Spring Cloud 声明式接口调用(Fiegn 声明式接口调用概述、Fiegn 使用)
  • 宝塔设置加速wordpress站点重庆网站建设 重庆网站制作
  • 游戏是怎么做的视频网站怎么把网站源码
  • 快印店网站建设84wzjs吉林新农村建设网站
  • 给公司做网站需要华多少钱产品设计需要学的软件