1 #include 2 #include 3 using namespace std; 4 int main(int argc, char *argv[]) 5 { 6 char str1[50],str2[50],str3[50],*p1,*p2,*p3; 7 int nu...
分类:
其他好文 时间:
2015-04-24 06:38:10
阅读次数:
140
利用hash table, two pointers, string的题目。1.求最长不重复子串的长度hash table体现在一个数组,下标是字符串中元素的ASCII值,下标对应的元素代表该元素在字符串中出现的位置。two pointers体现在用i一步步向前移去遍历字符串中的元素,作为不重复子串...
分类:
其他好文 时间:
2015-04-23 23:01:47
阅读次数:
131
传送门:http://poj.org/problem?id=3693
题目:给出一个串,求重复次数最多的连续重复子串;
分析:
枚举重复单元的长度,然后理所当然的枚举起点。利用rmq处理,后缀i,i+l的最长前缀。
lcp/l+1,为当前相邻l长度单元的串的重复次数,但是由于i+=l,提高了效率,但是i不一定刚好是重复串的起点,所以如果r%l!=0,把串往前移l-r%l个单位。找到...
分类:
编程语言 时间:
2015-04-22 09:36:52
阅读次数:
178
题目大意:
给定两个字符串a和b,定义a*b为两个字符串的链接。比如,a = "abc",b = "def",则
a*b ="abcdef"。这个定义当作是多项式。则一个字符串的非负整数次幂可定义如下:
a^0 = "",a^(n+1) = a*a^n。
现在给你一个字符串s,求出最大的n,满足s = a^n(a为s的某个子串)。比如s = "aaaa",
则n最大为4,a = "a",s = "a"^4。
思路:
对于给定的字符串s,最短的重复子串a是s[Next[len]] s[Next[len+1]...
分类:
其他好文 时间:
2015-04-21 11:15:20
阅读次数:
155
1、快速统计字符串中每个字符出现的个数hash表2、求两个字符串公共的最长子串长度和子串双重循环遍历找到长度,同时用二重指针保留住最长长度时候的指针位置3、求一个字符串中最大的重复子串长度和子串和2的思路差不多4、将一个字符串全排列输出(1)递归 (2)使用STL中的next_permutation...
分类:
其他好文 时间:
2015-04-20 22:22:57
阅读次数:
137
PeriodTime Limit: 3000MSMemory Limit: 30000KTotal Submissions: 13949Accepted: 6601DescriptionFor each prefix of a given string S with N characters (ea...
分类:
其他好文 时间:
2015-04-08 01:05:57
阅读次数:
123
题意:给一字符串,求一个子串的长度,该子串满足所有字符都不重复。字符可能包含标点之类的,不仅仅是字母。按ASCII码算,就有2^8=128个。思路:从左到右扫每个字符,判断该字符距离上一次出现的距离是多少,若大于max,则更新max。若小于,则不更新。每扫到一个字符就需要更新他的出现位置了。这里边还...
分类:
其他好文 时间:
2015-04-07 23:16:50
阅读次数:
153
题目:给定一个字符串,求出最长重复子串。
这个题目可以用后缀数组来解:对后缀数组排好序,这样重复的子串就在相邻的后缀中找就可以了。我的C++代码实现如下:class Solution
{
public:
string LongestRepeatingSubstring(string str)
{
size_t len = str.size();
vec...
分类:
编程语言 时间:
2015-03-31 22:29:32
阅读次数:
202
参考:http://www.ahathinking.com/archives/124.html最长公共子序列1、动态规划解决过程1)描述一个最长公共子序列 如果序列比较短,可以采用蛮力法枚举出X的所有子序列,然后检查是否是Y的子序列,并记录所发现的最长子序列。如果序列比较长,这种方法需要指数级时间....
分类:
编程语言 时间:
2015-03-18 23:05:17
阅读次数:
370
题意:
有N(1
“主题”是整个音符序列的一个子串,它需要满足如下条件:
1.长度至少为5个音符
2.在乐曲中重复出现(可能经过转调,“转调”的意思是主题序列中每个音符都被加上或减去了同一个整数值。)
3.重复出现的同一主题不能有公共部分。
思路:是要求最长不重叠重复的子串,如果没有不重叠的限制条件,那么height中的最大值即可
现在对于这题需要二分出答案,二分出最长重复子串...
分类:
编程语言 时间:
2015-03-17 21:58:38
阅读次数:
162