题目链接

给出一个字符串,你可以通过在首尾加入字符使其变成一个具有周期T(T>=2)的字符串,求所需加入的最少字符数。

所考察算法仍然是对next数组含义的理解

#include<cstdio>
#include<cstring> char S[];
int next[];
int len; void getNext()
{
int j=,k=-;
next[]=-;
while(j<len)
if(k==-||S[j]==S[k])
next[++j]=++k;
else
k=next[k];
}
void printNext()
{
for(int i=;i<len;i++)
printf("%3c",S[i]);
puts("");
for(int i=;i<=len;i++)
printf("%3d",next[i]);
puts("");
} int main()
{
int T;scanf("%d",&T);
while(T--)
{
scanf("%s",S);
len=strlen(S);
getNext();
// printNext();
int t=len-next[len]; //t即为最小周期
if(t==len)
printf("%d\n",len);
else if(len%t==)
puts("");
else
printf("%d\n",t-len%t);
}
}

最新文章

  1. Go语言实战 - revel框架教程之用户注册
  2. 【CentOS】虚拟机网络配置与远程登录
  3. 跨域iframe的高度自适应
  4. OGNL表示式使用和值栈
  5. elk是指logstash,elasticsearch,kibana三件套,这三件套可以组成日志分析和监控工具
  6. mysql聚集索引的优缺点
  7. docker学习系列(五):使用docker创建集成服务--lnmp
  8. Vue之九数据劫持实现MVVM的数据双向绑定
  9. [转]zookeeper集群 initLimit和syncLimit
  10. sitecore系统教程之体验编辑器
  11. 在Ubuntu 16.04 上编译安装OpenCV3.2.0(Cmake + python3 + OpenCV3)(转)
  12. OpAmp Voltage Follower/Regulator
  13. HDU 1033
  14. php查询某个字段指定值的所有条数
  15. Django 定制验证码
  16. hdu 1285 确定比赛名次 (拓扑)
  17. dom树改变监听
  18. UVA 11181 Probability|Given (离散概率)
  19. LeetCode:最长回文子串【5】
  20. CUDA编程时,线程块的处理方法

热门文章

  1. 一天搞定CSS:边框border--02
  2. WireShark网络分析就这么简单 读后感
  3. Nodejs-express 4.0框架 简单介绍
  4. GPUImage的filter 响应处理链 的理解笔记
  5. MVC 5限制所有HTTP请求必须是POST
  6. java io 流
  7. 使用requireJs的方法
  8. printf和scanf整理(后续填补)
  9. git视频教程
  10. hibernate sql查询转换成VO返回list