比较字符串之间的相似度有很多的方法,实际上也确实已经出现了很多相似度的定义。
- 最简单的一种,就是一个字符串是另外一个字符串的字串,那么可以说它们是相似的。常见的题型就是求字串,这种用S1.contain(String S2)就可以判断。
- 很多时候S1和S2都不是对方的字串,我们还可以这样来定义相似性:如果将一个串转换为另一个串的操作很少,那么我们可以说两个串是相似的。例子有Poj 3356用递归求解和LCS都可以解决。详见Poj 3356
- 另一种比较相似度的方式:寻找第三个串S3,它的所有元素都出现在S1和S2,且在三个串中出现的顺序相同,但在S1和S2中不要求连续,这就是最长公共子序列(LCS)。例子有Poj 1159 Poj 1936,3302 Subsequence(LCS) LCS.