两个字符串中匹配最大字符串
来源:互联网 发布:seo sem 新媒体工资 编辑:程序博客网 时间:2024/06/06 14:24
大体意思是,给出两个字符串,用自己最熟悉的编程语言找出两个字符串中匹配最长的字符串。如:“ascdefd”和“mntrcdefpk”则匹配出的最大字符串为:cdef。自己实现了一下,呵呵,当时练笔吧,或许以后能用到。开始是用线程实现的,如果启动多个线程匹配的话,可能会更快,后来还是谢了个一般方法来实现,这个看需要和效率要求吧。废话少说,记录一下自己写的代码,以后或许用得上。
int main(int argc, char *argv[]){ NSLog(@"start"); NSString *bigStr = @"1234567890123456789012345678901234567890"; NSString *smallStr = @"123456cffdsf7890"; int length = smallStr.length; NSMutableArray *ary = [NSMutableArray array]; for (int sublength = length; sublength > 0 ; sublength--) { [ary removeAllObjects]; for (int j = 0; j < length; j++) { if ((j + sublength ) <= length) { NSString *sub = [smallStr substringWithRange:NSMakeRange(j, sublength)]; [ary addObject:sub]; } } BOOL isFindMaxLength = NO; for( NSString *sub in ary) { for (int j = 0; j < bigStr.length;) { BOOL isFind = YES; for (int i = 0; i < sub.length; i++) { if ((j + i) >= bigStr.length) { isFind = NO; j = bigStr.length; break; } NSString *temp = [sub substringWithRange:NSMakeRange(i, 1)]; NSString *temp2 = [bigStr substringWithRange:NSMakeRange(j + i, 1)]; if (![temp isEqualToString: temp2]) { j ++ ; i = 0; isFind = NO; break; } } if (isFind) { isFindMaxLength = isFind; NSLog(@"%@",sub); break; } } } if (isFindMaxLength) { break; } } NSLog(@"end");}
运行结果:
0 0
- 两个字符串中匹配最大字符串
- 两个字符串中匹配最大字符串
- 匹配两个字符串的最大子串
- java获取两个字符串中的最大匹配
- Leetcode中两个字符串匹配
- JavaScript中两个字符串的匹配
- 匹配最大字符串
- 字符串最大匹配长度
- 两个字符串中最大相同子串
- 两个字符串中最大的公共字串
- 匹配两个字符串中,相同且最长的子字符串
- 找出两个字符串中最大公共子字符串
- 找出两个字符串中最大的公共子字符串
- 找出两个字符串中最大公共子字符串
- 查找两个字符串中最大的相同子字符串长度
- 从两个字符串中找出最大公共子字符串
- java实现字符串匹配问题之求两个字符串的最大公共子串
- 字符串的最大匹配问题
- 《APUE》Chapter 4 Files and directories (学习笔记加上自己的代码)
- UIImageView实现图片水平翻转
- Delphi操作Excel(1) ---获取excel的行数和列数
- ?? 两个??的使用
- BASH 脚本制作简单 Workflow - 更新 2014/6/17 12:00
- 两个字符串中匹配最大字符串
- 全局限制linux用户的权限
- 多表查询
- Spark大数据学习资源汇总
- gdbserver 远程调试问题:设置文件和so搜索路径
- 反向代理原理,及反向代理开放的软件应用
- 利用java反射机制导出Excel的公共方法以及使用的方法
- hive集成hbase
- Postgresql生成大量测试数据