题意:
      前缀重复次数,举个例子,aaa 2的位置2个a,3的位置3个a
abcabcabc 6的位置两个abcabc,9的位置三个abcabc....

思路:
     KMP基础题目之一,直接利用的是next数组的特点,对于当前点i,

i - next[i] 表示的是最小重复子串长度,如果 i - next[i] 不等于0,同时i % (i - next[i]) == 0说明当前字符是循环子串的最后一位,那么tmp = i / (i - next[i]) 表示的是循环次数,如果tmp>1直接输出i  i / (i - next[i])就行了,就说这么多吧,只要理解了next数组就肯定会这个题目了。

#include<stdio.h>
#include<string.h>#define N 1000000 + 100int next[N];
char str[N];void get_next(int m)
{int j ,k;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 ,cas = 1;while(~scanf("%d" ,&m) && m){scanf("%s" ,str);get_next(m);printf("Test case #%d\n" ,cas ++);for(i = 1 ;i <= m ;i ++){if(i - next[i] && i % (i - next[i]) == 0){int tmp = i / (i - next[i]);if(tmp > 1)printf("%d %d\n" ,i ,tmp);}}printf("\n");}return 0;
} 

POJ 1961 KMP(当前重复次数)相关推荐

  1. javascript数据结构与算法---检索算法(二分查找法、计算重复次数)

    javascript数据结构与算法---检索算法(二分查找法.计算重复次数) /*只需要查找元素是否存在数组,可以先将数组排序,再使用二分查找法*/ function qSort(arr){if (a ...

  2. Java查找数组重复元素,并打印重复元素、重复次数、重复元素位置

    面试题查找重复元素并打印重复次数和重复位置,一顿懵逼,回来死磕写下来,打印指定重复次数和最大次数,其他在此基础上可以再更新 package sort; import org.testng.annota ...

  3. 找出重复最多的字符php,javascript获取重复次数最多的字符_javascript技巧

    javascript获取重复次数最多的字符 /** 取出字符串中重复字数最多的字符 */ var words = 'sdfghjkfastgbyhnvdstyaujskgfdfhlaa'; //创建字 ...

  4. android 补间动画重复次数,9.1.5 setRepeatCount方法:设置重复次数

    9.1.5  setRepeatCount方法:设置重复次数 [功能说明]该方法用于设置一个动画效果重复执行的次数.Android系统默认每个动画仅执行一次,通过该方法可以设置动画执行多次. [基本语 ...

  5. 海量数据选取重复次数最多的n个

    最近刚换工作,面试的时候有一道题觉得很有意思,大致是通过web日志分析出网站最多的10条http请求的ip地址.页面等,我想这个可以归纳为海量数据选取重复次数最多的n个,跟网上看过的一题很类似:有10 ...

  6. 利用Linux命令行进行文本按行去重并按重复次数排序yes

    http://www.tuicool.com/articles/fEzERj Linux命令行提供了非常强大的文本处理功能,组合利用linux命令能实现好多强大的功能.本文这里举例说明如何利用Linu ...

  7. 51nod 1277 KMP 前缀出现次数

    51NOD 1277:http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1277 跟HDU 6153还挺像的:http://w ...

  8. #1419 : 后缀数组四·重复旋律4 (重复次数最多的连续字串)

    题目链接 思路 如何求一个串中的最大重复次数? 枚举循环节的大小,判断它是否合法. 如何快速判断循环节合法? LCP(LCP(LCP(原串, 原串−-−循环节)))是否完全匹配. 如何快速求串AAA和 ...

  9. 打印出重复的姓名和重复的次数,并按重复次数排序:

    读取文件内容, 打印出重复的姓名和重复的次数,并按重复次数排序: package com;import java.io.*; import java.util.*;/* 打印出重复的姓名和重复的次数, ...

最新文章

  1. Python基础之数据类型(一)
  2. 【PAT乙级】 1010 一元多项式求导 (25 分)
  3. 动态规划算法分析和理解:最长公共子序列、公共子字符串
  4. java http 接口制定_java調用http接口
  5. Some about me
  6. jzoj5231-序列问题【分治】
  7. 利用人工智能提升团队包容性
  8. 面试题——C++/C
  9. 寒假作业3(传说中的写软件)
  10. (三)线程同步工具集_1---控制线程并发访问一个资源
  11. [asp.net控件]asp.net页面传值汇总
  12. 安装SQL2005后SQL Server Management Studio 没有出来的解决方案
  13. 网络蜘蛛及搜索引擎基本原理
  14. 《物联网开发实战》05 系统实例:怎样设计一个简易物联网系统?(学习笔记)
  15. (一)事务与并发控制
  16. Linux 快速原型工具 Pencil
  17. undefined == null的正确解释
  18. 《计算机网络 第7版》第9章 无线局域网的物理层和MAC层
  19. Android OpenCV应用篇三:提取图片中的文字
  20. 信息系统开发与管理【一】之 管理信息系统导论

热门文章

  1. lufylegend基础知识1
  2. 把cygwin加入右键菜单
  3. python开发_python中的range()函数
  4. 我们距离AI编程还有多远?
  5. avalon $computed不起作用?
  6. Unity3D研究院之Editor下监听Transform变化
  7. 在React 组件中使用Echarts
  8. webform(九)——JQuery基础(选择器、事件、DOM操作)
  9. thinkphp3.2.2前后台公用类架构问题
  10. 《白发魔女传》里面的一首诗