题目描述 Description

某电视台在每一个星期天都有一个福利彩票节目,在该节目中有一个考察幸运观众记忆力的节目。节目的安排是这样的:首先由节目主持人说出一串诸如“左1右2左2左3右4左1”的数值串,然后由幸运观众重复该数值串;如果幸运观众能全部记忆出节目主持人说的所有数值串,该观众将获得一笔数目可观的奖金。为了确保节目的质量,节目导演希望这种数值串中不含连续的2个以上相同子串,这样数值串就不易记忆。他们称这种有连续相同子串的数值串为“易数值串”,而这种相同子串称为重复子串;无重复子串的数值串称为“难数值串”。

例如,下列字符串是“易数值串”:

(1)左1左1 (2)左1右2左3右2左3右2(3)左1右2左4左1右2左4右2

而下列字符串是“难字符串”:

(1)左1(2)左1右2(3)左1右2左1右1(4)左1右2右4左1右2

现假设:

(1)数值前只有“左”和“右”2个方向,分别用L和R代替“左”和“右”。

(2)数字范围为1,2,3,4,5,6,7,8,9。

(3)所有子串指的是“左”或“右”开始的子串,以诸如“1右2左”的连续重复子串不计算为重复子串。

你的任务是:对于给定一个数值串(串的长度<=100000),请你编程求出第一次出现的最长重复子串。

输入描述 Input Description

输入:输入文件为1行,它是一串数值串。

输出描述 Output Description

输出:输出文件为1行,它是输入文件中数值串的第一次出现的最长重复子串。如果无重复子串则输出字符串“NO”。

样例输入 Sample Input

string.in :

L1R2L2L4R5L3L4R5L3R4R5L3R4R5R6L1

样例输出 Sample Output

String.out:

L4R5L3

数据范围及提示 Data Size & Hint
 
 
#include<iostream>
#include<algorithm>
#include<cstring>
using namespace std;
int main()
{
int begin=0,end=0,f=0,l;
char a[100001];
cin>>a;
l=strlen(a);
for (int i=0;i<l-4;i+=2)//两个字符为一组
for (int j=i+2;j<=i+(l-i)/2;j+=2)//j在 i的下一位非数字的符号到剩余符号的一半 取值
if (equal(a+i,a+j,a+j))/*equal算法是逐一比较两个序列的元素是否相等
表示num数组从i开始到j区间内的字符串是否与从j开始的字符串相同 */
{
if (j-i>end-begin)
{
begin=i;
end=j;//由于j是下一组的第一个字符,所以最后输出时不输出a[end]
f=1;
}
if (j==i+(l-i)/2) break;
}
if (f)
for (int i=begin;i<end;i++) cout<<a[i];
else cout<<"NO"; }

  

codevs 1061 重复子串的更多相关文章

  1. [LeetCode] Longest Substring Without Repeating Characters 最长无重复子串

    Given a string, find the length of the longest substring without repeating characters. For example, ...

  2. 【POJ 3693】Maximum repetition substring 重复次数最多的连续重复子串

    后缀数组的论文里的例题,论文里的题解并没有看懂,,, 求一个重复次数最多的连续重复子串,又因为要找最靠前的,所以扫的时候记录最大的重复次数为$ans$,扫完后再后从头暴力扫到尾找重复次数为$ans$的 ...

  3. 【POJ 3261】Milk Patterns 可重叠的k次最长重复子串

    可重叠的k次最长重复子串 #include<cstdio> #include<cstring> #include<algorithm> using namespac ...

  4. spoj687 后缀数组重复次数最多的连续重复子串

    REPEATS - Repeats no tags  A string s is called an (k,l)-repeat if s is obtained by concatenating k& ...

  5. LeetCode:Longest Substring Without Repeating Characters(最长不重复子串)

    题目链接 Given a string, find the length of the longest substring without repeating characters. For exam ...

  6. poj 1743 二分答案+后缀数组 求不重叠的最长重复子串

    题意:给出一串序列,求最长的theme长度 (theme:完全重叠的子序列,如1 2 3和1 2 3  or  子序列中每个元素对应的差相等,如1 2 3和7 8 9) 要是没有差相等这个条件那就好办 ...

  7. POJ 1743 (后缀数组+不重叠最长重复子串)

    题目链接: http://poj.org/problem?id=1743 题目大意:楼教主の男人八题orz.一篇钢琴谱,每个旋律的值都在1~88以内.琴谱的某段会变调,也就是说某段的数可以加减一个旋律 ...

  8. POJ 3261 Milk Patterns (求可重叠的k次最长重复子串)+后缀数组模板

    Milk Patterns Time Limit: 5000MS   Memory Limit: 65536K Total Submissions: 7586   Accepted: 3448 Cas ...

  9. POJ 1743 Musical Theme (后缀数组,求最长不重叠重复子串)(转)

    永恒的大牛,kuangbin,膜拜一下,Orz 链接:http://www.cnblogs.com/kuangbin/archive/2013/04/23/3039313.html Musical T ...

随机推荐

  1. selenium webdriver python 操作浏览器

    新建driver driver=webdriver.Firefox() driver=webdriver.Ie() driver=webdriver.Chrome()   打开一个链接 driver. ...

  2. UIAlertController 的使用——NS_CLASS_AVAILABLE_IOS(8_0)

    UIAlertView 随着苹果上次iOS 5的发布,对话框视图样式出现在了我们面前,直到现在它都没有发生过很大的变化.下面的代码片段展示了如何初始化和显示一个带有“取消”和“好的”按钮的对话框视图. ...

  3. Mac下phpstorm 浏览器出现 502 bad gateway 解决办法

    问题: 在网上搜了好久,都没有合适的解决办法,于是决定分享下自己鼓捣好久解决了的办法,希望能帮到大家. 出现上述情况,一般在phpstorm里都会出现这个提示 我们只需要点击蓝色的进去,或者点phps ...

  4. 无锁,线程安全,延迟加载的单例实现(C#)

    单例(singleton)是非常常见,也非常有用的设计模式,当然了, 面试中也是经常会被问到的:)在几乎所有的项目中都能看到它的身影.简而言之,单例保证了一个自定义类型在整个程序的生命周期只被创建一次 ...

  5. COM编程入门第二部分——深入COM服务器

    本文为刚刚接触COM的程序员提供编程指南,解释COM服务器内幕以及如何用C++编写自己的接口.继上一篇COM编程入门之后,本文将讨论有关 COM服务器的内容,解释编写自己的COM接口和COM服务器所需 ...

  6. [AngularJS] New in Angular 1.5 ng-animate-swap

    <!DOCTYPE html> <html ng-app="MyApplication"> <head> <link rel=" ...

  7. angularjs于directive声明scope说明何时以及如何使用对象修饰符

    于angular我们定义directive方法.查看 return { restrict: 'AE', scope: {}, template: '<div></div>', ...

  8. sqlcipher移植

    一.下载代码 sqlcipher赖openssl库,首先下载openssl: [fulinux@ubuntu ~]$ git clone https://github.com/openssl/open ...

  9. 外键约束列并没有导致大量建筑指数library cache pin/library cache lock

    外键约束列并没有导致大量建筑指数library cache pin/library cache lock 清除一个100大数据表超过一百万线,发现已经运行了几个小时: delete B001.T_B1 ...

  10. 《UNIX网络编程》之多客户连接服务端,可重用套接字对

    该网络编程之客户端与服务端程序模板支持: 1. 多客户端同时连接服务端,即服务程序可以同时为多个客户端服务: 2. 服务端支持套接字对重用,即即使处于TIME_WAIT状态,仍可支持服务端重启: 3. ...