华为机试在线训练-牛客网(35)公共子串计算
来源:互联网 发布:《最强淘宝系统》 编辑:程序博客网 时间:2024/05/03 19:30
题目描述
题目标题:
计算两个字符串的最大公共字串的长度,字符不区分大小写
详细描述:
接口说明
原型:
int getCommonStrLength(char * pFirstStr, char * pSecondStr);
输入参数:
char * pFirstStr //第一个字符串
char * pSecondStr//第二个字符串
输入描述:
输入两个字符串
输出描述:
输出一个整数
输入例子:
asdfas werasdfaswer
输出例子:
6
求两个字符串的最大公共子串,我的硬解思路:
(1)取两者较小的长度开始,对该长度枚举所有子串的取法,只要有一个子串能在另一个子串里能找到,则返回该子串为最大公共子串;
(2)若未找到则缩短长度,重复执行第一步,直到返回结果;
完整AC的代码:
#include <iostream>#include <algorithm>using namespace std;string getMaxCommonStr(string str1,string str2){ string res; int len=str1.size()<str2.size()?str1.size():str2.size(); for(int i=len;i>0;i--){ for(int j=0;j<=str1.size()-i;j++){ string subStr=str1.substr(j,i); if(str2.find(subStr)!=string::npos){ res=subStr; goto Res; } } } Res: return res;}int main(){ string str1,str2; while(cin>>str1>>str2){ string res=getMaxCommonStr(str1,str2); cout<<res.size()<<endl; } return 0;}另外,此题为动态规划经典问题,先做标记,后补。
0 0
- 华为机试在线训练-牛客网(35)公共子串计算
- 华为机试在线训练-牛客网(30)查找两个字符串a,b中的最长公共子串
- 华为机试---公共子串计算
- 华为机试在线训练-牛客网(37)计算字符相似度
- 华为机试在线训练-牛客网(37)计算字符相似度
- 《华为机试在线训练》之计算字符个数
- 牛客网华为在线训练---计算字符个数
- 华为测试 公共子串计算
- 华为 oj 公共子串计算
- 【华为OJ】【071-公共子串计算】
- 华为机试在线训练-牛客网(4)质数因子
- 华为机试在线训练-牛客网(8)句子逆序
- 华为机试在线训练-牛客网(10)坐标移动
- 华为机试在线训练-牛客网(13)简单密码
- 华为机试在线训练-牛客网(16)字符串排序
- 华为机试在线训练-牛客网(22)字符串加密
- 华为机试在线训练-牛客网(24)迷宫问题
- 华为机试在线训练-牛客网(25)四则运算
- ansible
- linux操作系统中登录数据库实例、关闭、启动及设置参数
- Materialized View模式
- ssh and scp
- openssl2
- 华为机试在线训练-牛客网(35)公共子串计算
- Android 约束布局constrainLayout
- Java基础第一章
- YUV444转YUV420
- Bacula 搭建
- Android笔记:Android开发应用框架汇总(MVVP框架介绍)
- 小波图像处理 —— 奇异点(不连续点)检测
- Java两个栈来实现一个队列
- 《Wireshark网络分析就这么简单》