【qduoj】最长公共子串

题干:

描述

 

编写一个程序,求两个字符串的最长公共子串。输出两个字符串的长度,输出他们的最长公共子串及子串长度。如果有多个最长公共子串请输出在第一个字符串中先出现的那一个。

特别注意公共子串中可能包含有空格,但不计回车符!

输入

两个字符串,回车结尾,每个字符串中都可能含有空格(每个字符串的长度不超过200个字符)

输出

一共有四行,前两行以Length of String1:和Length of String2:开始冒号后面分别输出两字符串的长度。 第三行Maxsubstring:输出符合题目里描述的子串。第四行是Length of Maxsubstring:加子串长度。注意!冒号后面不要输出多余的空格!

输入样例 1 

this is a string
my string is abc

输出样例 1

Length of String1:16
Length of String2:16
Maxsubstring: string
Length of Maxsubstring:7

输入样例 2 

abcdef
defabc

输出样例 2

Length of String1:6
Length of String2:6
Maxsubstring:abc
Length of Maxsubstring:3

输入样例 3 

aabbcc
aabbcc

输出样例 3

Length of String1:6
Length of String2:6
Maxsubstring:aabbcc
Length of Maxsubstring:6

解题报告:

 

       这题做法很多,好像直接n^2暴力判断也可以水过,就是从s1字符串的每一个字符当成首字符,看最长能延伸到哪里(也就是跟s2最长匹配到哪里),这里要注意跟s2找到第一个不匹配的字符(假设是ss字符)的时候记录下tmplen,但是不能直接break,需要继续搜后面的s2,因为有可能还有长度tmplen2  > 刚刚记录的tmplen。这里搜的时候需要从ss开始搜也可以过,但是其实应该是从上一个第一个匹配的字符的下一个字符 开始搜。也许是数据出水了吧。总之代码比较冗长,何不试试更好想的方法?

     直接枚举这个长度,从len1开始倒着枚举内层循环正着遍历(因为题目要求输出最长的最靠前的),然后每一次枚举都判断是否s1和s2中有匹配的,如果有那就直接break掉并且输出即可。

   下面上法2的代码:

AC代码:

#include<cstdio>
#include<queue>
#include<string>
#include<cstring>
#include<cmath>
#include<map>
#include<iostream>
#include<algorithm>
#define ll long long
const ll mod = 1e9+7;
using namespace std;
char s1[5005],s2[5005],tmp[5005];
int main()
{cin.getline(s1+1,1004);cin.getline(s2+1,1004);int len1 = strlen(s1+1);int len2 = strlen(s2+1);int ans,flag = 0;for(ans = len1; ans >=0; ans--) {for(int i = 1; i<=len1-ans+1; i++) {for(int j = 0; j<ans; j++) tmp[j] = s1[i+j];tmp[ans] = '\0';//printf("tmp=%s\n",tmp);if(strstr(s2+1,tmp) != NULL) {flag = 1;break;}}if(flag) break;}printf("Length of String1:%d\n",len1);printf("Length of String2:%d\n",len2);printf("Maxsubstring:%s\n",tmp);printf("Length of Maxsubstring:%d\n",ans);return 0 ;
}

总结:

       ps刚开始这题写错了WA3次,因为看成了公共子序列问题了,,,想dp来着,后来发现读错题了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/441776.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

计算机导论结业报告大一,河北工业大学计算机导论结业论文.pdf

计算科学导论结业论文(黄路路 计算机科学与软件学院112班 112436)摘要 本文采用简洁的语言浅显扼要的讲解了计算机的系统理论知识&#xff0c;起抛砖引玉的作用。本文核心知识&#xff1a;共包含四大部分&#xff1a;计算理论、计算机的系统结构、信息的表示、计算科学与C语言的…

pythonjson实例_python:JSON的两种常用编解码方式实例解析

概念JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式&#xff0c;易于人阅读和编写。在日常的工作中&#xff0c;应用范围极其广泛。这里就介绍python下它的两种编解码方法&#xff1a;使用json函数使用 JSON 函数需要导入 json 库&#xff1a;import json。函数…

caxa计算机编程,CAXA软件编程实例1

课时&#xff1a;75节课时长&#xff1a;24.1小时课级&#xff1a;中级提高课程从基础讲起&#xff0c;仅贴实际生产实践&#xff0c;适合职业院校教师、企业技术员、学生学习&#xff0c;讲解细致、全面&#xff0c;带你学习带你飞、软件使用常见问题及解决方法和使用技巧详细…

【qduoj】C语言_凯撒密码

题干&#xff1a; 描述 据说最早的密码来自于罗马的凯撒大帝。消息加密的办法是&#xff1a;对消息原文中的每个字母&#xff0c;分别用该字母之后的第5个字母替换&#xff08;例如&#xff1a;消息原文中的每个字母A都分别替换成字母F&#xff09;。而你要获得消息原文&#…

python中常用的函数有哪些_Python 最常用的语句、函数有哪些?

一、常用语句1、条件语句&#xff1a;if else一句话概括该语句作用&#xff1a;非此即彼。python中的 if else 的语句功能更加强大、更加灵活。2、循环语句&#xff1a;for & while循环语句中&#xff0c;还有两个关键字至为重要&#xff1a;continue 与 break。这两个关键…

计算机函数select,select函数

学习目标了解select函数的各参数的作用&#xff0c;能够在程序设计中正确使用select函数使用select函数&#xff0c;编写一个简单socket服务器程序&#xff0c;可支持多客户端连接1、select函数机制select函数允许程序同时在等待多个底层文件描述符输入的到达&#xff0c;并且只…

【CodeForces - 833A】The Meaningless Game(思维题,数学,可用牛顿迭代法,知识点总结)

题干&#xff1a; Slastyona and her loyal dog Pushok are playing a meaningless game that is indeed very interesting. The game consists of multiple rounds. Its rules are very simple: in each round, a natural number k is chosen. Then, the one who says (or ba…

python创建变量并赋值_python怎么给变量赋值

在学习变量及赋值之前,我们要知道什么是变量! Python语言中,用等号【=】来表示赋值,Python赋值并不是直接将一个值赋值给一个变量,在Python中,对象是通过引用传递的;在传递时,不管这个对象是新创建的还是已经存在的,都是将该对象的引用赋值给变量。 举个例子,3 * 4 =…

【CodeForces - 670D1 】Magic Powder - 1 (模拟 或 枚举 或二分优化)

题干&#xff1a; This problem is given in two versions that differ only by constraints. If you can solve this problem in large constraints, then you can just write a single solution to the both versions. If you find the problem too difficult in large cons…

第二课计算机ppt,第二课计算机系统.ppt

第二课计算机系统主要部件功能及参数指标 机 箱 外 壳 一个完整的计算机系统是由硬件(Hardware)系统和软件(Software)系统两大部分组成。 计算机硬件是指系统中可触摸得到的设备实体&#xff0c;是计算机工作的基础。 计算机软件是指在硬件设备上运行的各种程序和文档。 软件系…

正则表达式 python_Python正则表达式总结

之前我们讲解了 正则表达式 的起源、发展、流派、语法、引擎、优化等相关知识&#xff0c;今天我们主要来学习一下 正则表达式在 Python语言 中的应用&#xff01;大多数编程语言的正则表达式设计都师从Perl&#xff0c;所以语法基本相似&#xff0c;不同的是每种语言都有自己的…

建立远程ftp服务器,利用无线路由器建立FTP服务器

路由器的应用非常广泛&#xff0c;无线路由器技术也更加的完善和稳定&#xff0c;利用无线路由器能构建FTP服务器。下面&#xff0c;我就具体的方法在这里拿出来和大家分享一下&#xff0c;希望对大家有用。一、FTPFTP(文件传输协议)诞生之后&#xff0c;便迅速地得到了推广和应…

【HDU - 5912】Fraction (模拟)

题干&#xff1a; Mr. Frog recently studied how to add two fractions up, and he came up with an evil idea to trouble you by asking you to calculate the result of the formula below: As a talent, can you figure out the answer correctly? Input The first …

vue mysql webapp_基于Laravel+VueJS实战开发WebAPP

资源介绍【课程内容】1-git库与开发环境及工具软件介绍2-安装laravel框架3-安装laravel-ide-helper增强代码提示4-配置数据库与使用migrations创建表5-解决mysql5.7以下laravel不能执行数据迁移的问题6-合理的路由布局与分组路由7-远程开发环境服务器搭建与虚拟面板的使用8-使用…

计算机测试怎么提交,Win7电脑怎么测试上传速度?

做网站的人都知道上传速度是很重要的&#xff0c;因为太差的上传速度会影响工作的进度&#xff0c;所以他们经常要对上传速度进行测试&#xff0c;但是有一些新手不知道Win7电脑怎么测试上传速度&#xff1f;为此小编赶紧整理了以下教程&#xff0c;不知道的朋友赶紧来看看吧&a…

【HDU - 5914 】Triangle (打表 或 set维护)

题干&#xff1a; Mr. Frog has n sticks, whose lengths are 1,2, 3⋯⋯n respectively. Wallice is a bad man, so he does not want Mr. Frog to form a triangle with three of the sticks here. He decides to steal some sticks! Output the minimal number of sticks h…

harmonyos消息服务器,第三方纯HarmonyOS应用太少,你还愿意升级吗?

部分纯鸿蒙 HarmonyOS 应用已上线&#xff1a;图标多了“HMOS”角标标识&#xff0c;而只有真正的鸿蒙系统应用才能真正体验到万能卡片等系列的功能&#xff0c;但是很明显目前真正属于鸿蒙系统的第三方应用太少……基本上都是华为自身的应用&#xff0c;那么如果应用太少你还愿…

如何释放mysql连接资源_CI框架出现mysql数据库连接资源无法释放的解决方法

本文实例分析了CI框架出现mysql数据库连接资源无法释放的解决方法。分享给大家供大家参考&#xff0c;具体如下&#xff1a;使用ci框架提供的类查询数据&#xff1a; $this->load->database();$query $this->db->query($sql);程序运行一段时间之后&#xff0c;报错…

【nyoj - 860】 又见0-1背包 (dp,反向0-1背包,好题好思路)

题干&#xff1a; 又见01背包 时间限制&#xff1a;1000 ms | 内存限制&#xff1a;65535 KB 难度&#xff1a;3 输入 多组测试数据。 每组测试数据第一行输入&#xff0c;n 和 W &#xff0c;接下来有n行&#xff0c;每行输入两个数&#xff0c;代表第i个物品的wi 和 v…

300英雄服务器维护多久,《300英雄》2021年5月20日6:00-9:00更新维护公告

尊敬的《300英雄》玩家:《300英雄》将于2021年5月20日6:00-9:00(星期四)&#xff0c;对所有大区进行停机更新&#xff0c;更新期间&#xff0c;您将无法登录游戏。如果在预定时间内无法完成维护内容&#xff0c;开服时间也将继续顺延。具体更新内容如下&#xff1a;一、活动相关…