POJ2752KMP逆序处理
来源:互联网 发布:淘宝好评率低而拒绝卖 编辑:程序博客网 时间:2024/05/19 18:43
题意:
给你一个串,问你都哪些位置即使前缀又是后缀。
思路:
给你一个串,问你都哪些位置即使前缀又是后缀。
思路:
可以用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;}
0 0
- POJ2752KMP逆序处理
- POJ2752KMP
- 数组元素值处理并逆序输出
- Hduoj1394【线段树+逆序数处理】
- 用归并排序处理逆序对问题
- codeforces 722C 并查集好题+逆序处理
- 归并排序处理逆序对问题
- 逆序
- 逆序
- 逆序
- 面试题 对所有的连续字符串进行逆序处理
- 树状数组求逆序数的模板(离散化处理)
- 树状数组详解(处理在线数据,求逆序对)
- 内存映射处理大文件并实现逆序输出
- 逆序对在OI中实际问题里的细节处理
- [题解] JSOI2008 星球大战 (并查集+逆序处理)
- 对数字的处理,得到位数,逆序输出,顺序输出
- 对5位以内的正整数处理(判断他是几位数、顺逆序输出)
- HDU 3938 离线并查集+二分
- 牛顿迭代法
- linux下tomcat开机启动配置
- 使用Spark+Cassandra打造高性能数据分析平台
- Android底层开发(二)之编写调用JNI层的java库 第四步
- POJ2752KMP逆序处理
- linux 定时任务 加锁
- select函数简介
- ubuntu下安装python scipy
- 一封来自知乎的手机拍摄要领
- java中synchronized的用法与详解
- 要事为先
- 关于Class.getResource和ClassLoader.getResource的路径问题
- 周记:适配心得