题意:
     给你一个串,问你都哪些位置即使前缀又是后缀。

思路:

     可以用KMP来做,尝试过很多种方法,想把两个串接起来然后..失败,后来又想可以倒着匹配,就是把整个串倒过来..失败,说下第三种也是成功的方法,就是正常匹配,然后找到最后一个的next,如果是0,那么就不用找了,否则里面的数值是答案,然后再找next对应的那个数值,一直找到0,最后记得把总长度加上,正确性可以这么想,从后往前找保证是后缀,不是0保证当前失配不用返回起点也就是当前是当前是某个和前缀相同但不是前缀的字符串的最后一个字母。


#include<stdio.h>
#include<string.h>char str[400005];
int next[400005];
int  ans[400005];void Get_Next(int m)
{int j = 0 ,k = -1;next[0] = -1;while(j < m){if(k == -1 || str[j] == str[k])next[++j] = ++k;else k = next[k];}return ;
}int main ()
{int m ,i;while(~scanf("%s" ,str)){m = strlen(str);Get_Next(m);int id = m;i = 0;while(next[id]){ans[++i] = next[id];id = next[id];}ans[0] = m;m = i;for(i = m ;i >= 0 ;i --){if(!i) printf("%d\n" ,ans[i]);else printf("%d " ,ans[i]);}}return 0;
}

POJ2752KMP逆序处理相关推荐

  1. 华为机考HJ13句子逆序C语言弱智解法

    华为机考HJ13句子逆序C语言弱智解法 句子逆序C语言低端解法,易于理解. 1.收数据老生常谈. 2.将句子全部逆序. 3.将单词正序. (这里有一个bug,最后一个词(原句子第一个词)总是收不到,所 ...

  2. 字符串面试题(一)字符串逆序

    字符串逆序可以说是最经常考的题目.这是一道入门级的题目,相信80%的程序员经历过这道题.给定一个字符串s,将s中的字符顺序颠倒过来,比如s="abcd",逆序后变成s=" ...

  3. C语言的单链表逆序和指定范围逆序

    文章目录 前言 逆序 指定范围逆序 源码实现 前言 关于链表的逆置,是考察对链表指针的理解.知道了如何不实用额外空间,同时使用O(n)复杂度对链表进行逆序之后将会对链表有好理解. 同时关于如何在指定范 ...

  4. 单链表逆序生成及逆置的完整实现

    单链表逆序生成及逆置的完整实现 本例中单链表数据类型定义成int型,可更改 头文件1(1.h) 宏定义及Status类型定义 头文件2(2.h) 单链表基本操作函数与逆置函数 include" ...

  5. 题目 1093:【蓝桥杯】【入门题】字符逆序

    题目 1093:字符逆序 蓝桥杯刷题群已成立,微信后台回复[蓝桥杯],即可进入. 如果加入了之前的社群不需要重复加入. 时间限制: 1Sec 内存限制: 64MB 1. 题目描述 将一个字符串str的 ...

  6. 【数据结构】单链表的逆序输出(两种方法)

    第一种方法:转换指针方向 即:将一个已经创建好的单链表进行指针域的改变 今天突然被问到单链表逆序的问题,弄了好久才看出别人的程序有啥问题,就重新写了一遍. 今天才在CSDN客户端上看到美团的面试题是冒 ...

  7. ACMNO.27 Python的两行代码解决 C语言-字符逆序 写一函数。使输入的一个字符串按反序存放,在主函数中输入输出反序后的字符串。 输入 一行字符 输出 逆序后的字符串

    题目描述 写一函数,使输入的一个字符串按反序存放,在主函数中输入输出反序后的字符串. 输入 一行字符 输出 逆序后的字符串 样例输入 123456abcdef 样例输出 fedcba654321 来源 ...

  8. ACMNO.21 C语言-逆序输出 输入10个数字,然后逆序输出。 输入 十个整数 输出 逆序输出,空格分开 样例输入 1 2 3 4 5 6 7 8 9 0

    题目描述 输入10个数字,然后逆序输出. 输入 十个整数 输出 逆序输出,空格分开 样例输入 1 2 3 4 5 6 7 8 9 0 样例输出 0 9 8 7 6 5 4 3 2 1 提示 数组?堆栈 ...

  9. AMNO.6 给出一个不多于5位的整数,要求 1、求出它是几位数 2、分别输出每一位数字 3、按逆序输出各位数字,例如原数为321,应输出123 输入 一个不大于5位的数字

    题目描述 给出一个不多于5位的整数,要求 1.求出它是几位数 2.分别输出每一位数字 3.按逆序输出各位数字,例如原数为321,应输出123 输入 一个不大于5位的数字 输出 三行 第一行 位数 第二 ...

最新文章

  1. 安装JAVA 运行环境
  2. java架构说明书_JDBC 使用说明(流程、架构、编程)
  3. ArcGIS+Sql Server发布要素服务
  4. 两男子骑摩托车抢夺宴席礼金 警方:嫌疑人已被抓获
  5. 狂神说ElasitcSearch笔记(一)
  6. SAP ABAP Development Tool 如何设置黑色主题
  7. 怎么样利用“消息集中管控中心”批量管理手机信息
  8. Matlab神经网络基础
  9. 记一次阿里电话面试(java技术岗)
  10. java线程栅栏_Java 多线程之栅栏-CyclicBarrier
  11. 漫画英语作文怎么写 计算机,漫画英文作文怎么写
  12. springboot-mybatis集成 使用逆向工程
  13. java爬取携程景点门票数据
  14. css禁止文本或文字图标点击被选中
  15. 敲7数字100以内c语言,敲七游戏数字表怎么玩?
  16. 如何把illustrator圆圈5等分?
  17. java推送数据到指定的外部接口
  18. 交通运输——机器学习/深度学习资源列表
  19. python信息检索和评价系统_Python爬虫实现的微信公众号文章下载器
  20. 业务如何修改表数据_SAP刘梦_新浪博客

热门文章

  1. nltk自然语言处理
  2. 《JavaScript DOM 编程艺术》 读书笔记
  3. Excel导出多sheet单sheet通用型(poi)
  4. 将用户输入内容中的尖括号、引号等进行转义
  5. Windows蓝屏(Beginning Dump of Physical Memory)
  6. Tip #6 用ASP.NET AJAX判断当前浏览器类型
  7. PM Basic Skill---Communicate Plan
  8. @EnableGlobalMethodSecurity(prePostEnabled = true)
  9. [转帖]Linux中的15个基本‘ls’命令示例
  10. 设计模式-创建型模式-工厂模式(工厂三兄弟) TypeScript