假如有两个字符串分别是:abcd,bbcd,那么,这两个字符串不相同的字符个数是1,即第一个字符时不相同的,定义字符串的相似度为 1 / (x + 1),其中,x 就是不相同的字符个数。
我们可以有三种方法比较两个字符串中不相同字符的个数:
1.去掉第一个字符串中不相同的那个字符,并同时再去比较下一个字符
2.去掉第二个字符串中不相同的那个字符,并同时再去比较下一个字符
3.同时去掉字符串中不相同的那个字符,并同时再去比较下一个字符
之后,我们需要把不相同的字符个数加 1 ,最后,我们只需要取得三种方法中值最小的那个即可。
很容易发现,依次比较字符是否相同时时递归的操作,所以,这道题目解法如下:
函数声明:

该博客探讨了如何计算两个字符串之间的相似度,定义为不相同字符个数加1的倒数。提出了三种比较方法:从每个字符串中去除不相同字符、仅从一串中去除或同时去除。通过递归实现这一过程,源代码中使用了模板函数来解决问题。
最低0.47元/天 解锁文章
8384

被折叠的 条评论
为什么被折叠?



