题意:给定一个串长度k,然后判断一下sum[i-1]是不是==k,不是的话说明第k小的字串一定在后缀i的字串中出现过,并算出长度L。然后再确定其在整个字符串中出现的最左位置,L>h[i]显然成立,所以L只能在i之后的后缀的字串中出现,找到一个范围i~r,使得之间的h值>=L,然后RMQ求出最小的sa...
分类:
其他好文 时间:
2014-09-16 02:41:59
阅读次数:
306
防止产生重复的排列字串,即在排列时不会重复的交换
第一种思路是在递归函数中用set检查当前交换的数字是否已经换过,
如{0,1,0,2}中start=0时:
交换num[0]和num[0],并产生start=1的子排列
交换num[0]和num[1],并产生start=1的子排列
交换num[0]和num[2],并产生start=1的子排列(产生重复)
交换num[0]和n...
分类:
其他好文 时间:
2014-09-16 00:20:19
阅读次数:
228
编辑距离,又称Levenshtein距离,是指两个字串之间,由一个转成另一个所需的最少编辑操作次数。许可的编辑操作包括将一个字符替换成另一个字符,插入一个字符,删除一个字符。Levenshtein距离可以通过下面这个状态方程求解:
这个式子还是比较好理解的:当字符串a为空,那么两个字符串之间的距离就是另一个字符串b的长度,因为可以通过删除strlen(b)个字符后编程空字符。其它三个方程...
分类:
其他好文 时间:
2014-09-15 16:00:39
阅读次数:
266
假定有一个方法isSubstring,可检查一个单词是否为其他字符串的字串。给定两个字符串s1和s2,请编写代码检查s2是否为s1旋转而成,要求只能调用一次isSubstring。(比如,waterbottle是erbottlewat旋转后的字符串。)分析:将两个s1拼接起来,调用isSubstri...
分类:
其他好文 时间:
2014-09-14 21:54:47
阅读次数:
210
/// /// 生成随机数字窜 /// /// 位数 /// private string RandomNum(int Digit) { StringBuilder sb = new St...
分类:
其他好文 时间:
2014-09-12 11:51:43
阅读次数:
188
转载自。。。 ①、将字符串加密称MD5,32位16进制字符串 ②、将字符串加密称ASCII字串 ③、将ASCII字串编程16进制字串import java.security.MessageDigest;public class StringUtils { public static Strin...
分类:
移动开发 时间:
2014-09-11 10:57:21
阅读次数:
227
正则表达式的目的就是匹配字符串,匹配字符串可以是我们简单理解的字符串,例如:"zhangsan"
但这不是正则表达式美丽所在,它是通过对其他字符的特殊转义来达到复杂匹配字串的支持。这里介绍一下它所支持的基本转义符
1 基本正则式
1.1) ^ 表示文本行的开头
eg: "^a" 表示匹配行的第一个字符为"a"的意思
1.2) $ 表示文本行的结尾
eg: "$a" ...
分类:
其他好文 时间:
2014-09-10 14:18:20
阅读次数:
242
题意:找所有字符串中的最长公共字串解题思路:KMP+剪枝,因为如果我们知道前缀如果不满足条件,所有以这个开头的都不行。解题代码: 1 // File Name: getnext.cpp 2 // Author: darkdream 3 // Created Time: 2014年09月09日 ...
分类:
其他好文 时间:
2014-09-10 13:58:10
阅读次数:
274
题意:找所有字符串中的最长公共字串解题思路:KMP+剪枝,因为如果我们知道前缀如果不满足条件,所有以这个开头的都不行。解题代码: 1 // File Name: getnext.cpp 2 // Author: darkdream 3 // Created Time: 2014年09月09日 ...
分类:
其他好文 时间:
2014-09-10 13:53:10
阅读次数:
320