目录
例如:
文字段1:“初始化第一列”和 文字段2:“初始化第一行”,这两段文字的相似程序比较,可以看出这两句只要一个字不同,那相似程度就是 1- 1/6 = 5/6 ≈ 0.833333。
相似程度的计算公式就是:相似程度(百分比) = 1 - (不同的字符个数)/MAX(文字1,文字2)
注意:不同的字符个数,指的是同一个位置上,即相同下表。
思路
1、计算编辑距离:
1>因为OC不能定义确定长度的二维数组,所以,我先定义了一个 len1 * len2 的二维数组;
2>通过LD算法,计算编辑距离;
2、通过编辑距离,计算相似度。
OC的代码实现:
- (void)viewDidLoad {
[super viewDidLoad];
NSString *str1 = @"GGATCGA";// @"GGATCGA"; @"初始化第一列";
NSString *str2 = @"GAATTCAGTTA";//@"GAATTCAGTTA"; @"初始化第一行";
CGFloat similar = [self calSimilar:str1 str2:str2];
NSLog(@"%f",similar);
}
// 计算编辑距离
- (CGFloat)calDistance:(NSString *)str1 str2:(NSString *)str2 {
int len1 = (int)str1.length;
int len2 = (int)str2.length;
if (len1 == 0) {

最低0.47元/天 解锁文章
9万+

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



