题目: Write a function to find the longest common prefix string amongst an array of strings. 题目解答: 求一组字符串的最长公共前缀。使用迭代器数组实现。思路异常的简单。 代码如下: class Solution ...
分类:
其他好文 时间:
2016-05-10 12:55:25
阅读次数:
134
51nod除了在做OJ之外,还开展了很多副业。婚姻介绍所就是其中之一。
对于一个客户,我们可以使用一个字符串来描述该客户的特质。
假设现在我们有两个客户A和B。
A的特质字符串为:abcdefg
B的特质字符串为:abcxyz
则A和B的匹配度f(A, B)为A和B的最长公共前缀的长度,即len('abc') = 3
由于最近51nod经费紧张,...
分类:
其他好文 时间:
2016-05-07 10:12:24
阅读次数:
333
1、 概述 Trie树,又称字典树,单词查找树或者前缀树,是一种用于快速检索的多叉树结构,如英文字母的字典树是一个26叉树,数字的字典树是一个10叉树。 Trie一词来自retrieve,发音为/tri:/ “tree”,也有人读为/tra?/ “try”。 Trie树可以利用字符串的公共前缀来节约 ...
分类:
编程语言 时间:
2016-05-02 13:04:44
阅读次数:
1169
题目链接 题意:求两个字符串的最长公共子串 分析:做法是构造新的串是两个串连接而成,中间用没有出现的字符隔开(因为这样才能保证S的后缀的公共前缀不会跨出一个原有串的范围),即newS = S + '$' + T。对其求sa数组和height数组,取最小值的height[i],且两个后缀串属于不同的字 ...
分类:
编程语言 时间:
2016-04-30 16:56:48
阅读次数:
153
字典树(trie树) (图f) 字典树是一种以树形结构保存大量字符串。以便于字符串的统计和查找,经常被搜索引擎系统用于文本词频统计。它的优点是:利用字符串的公共前缀来节约存储空间,最大限度地减少无谓的字符串比较,查询效率比哈希表高。具有以下特点(图f):(1)根节点为空;(2)除根节点外,每个节点包 ...
分类:
其他好文 时间:
2016-04-18 11:55:26
阅读次数:
170
题目:
Write a function to find the longest common prefix string amongst an array of strings.
题目大意:
写一个函数,求一个字符串数组中最长的公共前缀子串。
思路:
在做这道题之前先要了解一下什么叫做公共前缀子串。在英语中一个单词可以分为前缀、词根、后缀三部分,所谓前缀就是指在单词的开...
分类:
其他好文 时间:
2016-04-11 12:32:43
阅读次数:
128
题目链接 题意:给定长度为n(n <= 1000)的只含小写字母的字符串,问字符串子串不重叠出现最少两次的不同子串个数; input: aaaa ababcabb aaaaaa # output 2 3 3 思路:套用后缀数组求解出sa数组和height数组,之后枚举后缀的公共前缀长度i,由于不能重 ...
分类:
编程语言 时间:
2016-04-10 23:58:53
阅读次数:
610
题目:Write a function to find the longest common prefix string amongst an array of strings. 题解:给出的函数为:char* longestCommonPrefix(char** strs, int strsSiz ...
分类:
其他好文 时间:
2016-03-27 18:00:29
阅读次数:
256
本题就是求重复数最多的字典序最小的$runs$,如果重复数为1,那么做法显然,然后只考虑重复数大于1的情况。 从小到大枚举长度$len$,对于每个关键点$x=i\times len$,有且仅有一个长度为$len$的串经过它。 算出$x$与$x+len$的最长公共前缀$A$和最长公共后缀$B$后,贡献
分类:
其他好文 时间:
2016-03-15 00:21:15
阅读次数:
193
题目链接 每个子串都是一个后缀的前缀 每个后缀贡献的子串数目是len-sa[i]-height[i]; 因此可以二分找到一个子串的位置,要求某两个子串的最长公共前缀和最长公共后缀,把原串倒过再来一发就好,然后st表O(1)查询; 1 #include<algorithm> 2 #include<io
分类:
其他好文 时间:
2016-02-28 22:41:34
阅读次数:
341