公共字串计算
2016-03-09 21:22
232 查看
题目标题:
计算两个字符串的最大公共字串的长度,字符不区分大小写
接口说明:
原型: int getCommonStrLength(char * pFirstStr, char * pSecondStr);
输入参数:
char * pFirstStr //第一个字符串
char * pSecondStr//第二个字符串
知识点: 字符串,查找
输入: 字符串1 字符串2
输出: 整数
样例输入: asdfas werasdfaswer
样例输出: 6
代码:
注意:
该代码的时间复杂度在字符串较大的情况下很大,这是很笨的办法。
看到网上的优化算法是动态规划问题。目前,还没有时间仔细研究,等把所有题目刷一遍,定来好好钻研。
计算两个字符串的最大公共字串的长度,字符不区分大小写
接口说明:
原型: int getCommonStrLength(char * pFirstStr, char * pSecondStr);
输入参数:
char * pFirstStr //第一个字符串
char * pSecondStr//第二个字符串
知识点: 字符串,查找
输入: 字符串1 字符串2
输出: 整数
样例输入: asdfas werasdfaswer
样例输出: 6
代码:
#include <iostream> #define MAX 200 using namespace std; void Transfer(char* str,int len) { for (int i = 0; i < len; i++) if (str[i] >= 'A'&&str[i] <= 'Z') str[i] += 'a' - 'A'; } int main() { char str1[MAX], str2[MAX]; cin >> str1 >> str2; int len1 = strlen(str1), len2 = strlen(str2); int i, j, max = 0, count = 0, m, n; Transfer(str1, len1); Transfer(str2, len2); for (i = 0; i < len1; i++) for (j = 0; j < len2; j++) { m = i; n = j; while (str1[m] == str2 &&m<len1&&n<len2) { count++; m++; n++; } if (count > max) max = count; count = 0; } cout << max << endl; return 0; }
得分 | 运行时间 | 内存 | 复杂度 | 最大嵌套深度 |
450(450) | 31ms | 2048KB | 7 | 4 |
该代码的时间复杂度在字符串较大的情况下很大,这是很笨的办法。
看到网上的优化算法是动态规划问题。目前,还没有时间仔细研究,等把所有题目刷一遍,定来好好钻研。
相关文章推荐
- CodeForces 630F-Selection of Personnel【组合数学】
- HTML+CSS基础篇(三)——CSS样式基础
- 56.银行里的迷宫(未解决题目)
- 对于软件的点评
- 56.银行里的迷宫(未解决题目)
- 56.银行里的迷宫(未解决题目)
- 56.银行里的迷宫(未解决题目)
- CODE[VS] 1169 传纸条
- 判断一个单链表是否有环及环的链接点
- VMWare中安装Windows Server2012无法启动的解决方案
- Spring 的容器
- Apache Mahout 简介 通过可伸缩、商业友好的机器学习来构建智能应用程序
- Java多线程实现异步调用
- 对比: Java EE EJB和 Spring Java Bean
- 在CentOS 6.5里添加一块硬盘,分区并格式化后,挂载到/data下
- flex布局
- 一起学libcef--给你的浏览器删除cookie
- Dubbo与Zookeeper、SpringMVC整合和使用(负载均衡、容错)
- 欢迎使用CSDN-markdown编辑器
- Lua中的table函数库