最长公共子字符串 -- 漫漫算法路 刷题篇

Python编码---2个字符串寻找最长子字符串 String:字符串是由数字、字母、下划线等组成的一串字符。字符串的有关操作,各个大厂笔试、面试高频问题,如输入2个字符串,求2个字符串的最长公共字符串。本文用Python语言实现2个字符串S1、S2中寻找最长公共字符串(长度相等,都打印)。 阅读详情

给出两个字符串(可能包含空格),找出其中最长的公共连续子串,输出其长度。

输入描述:
输入为两行字符串(可能包含空格),长度均小于等于50.


输出描述:
输出为一个整数,表示最长公共连续子串的长度。
示例1

输入

abcde
abgde

输出

2

思想  :即创建一个二维数组  两个下标分别表示两个字符串比较后最大的子字符串长度(如果字符不匹配则为0,匹配则为前一个匹配结果+1)

import java.util.*;
public class Main{
    public static int getMax(String str1,String str2){
        if(str1.length()==0||str2.length()==0)
            return 0;
        int len1 = str1.length();
        int len2 = str2.length();
        int[][] result = new int[len1+1][len2+1];  
        int maxs=0;
        for(int i=1;i<=len1;i++)
            for(int j=1;j<=len2;j++){
                if(str1.charAt(i-1)==str2.charAt(j-1)){
                    result[i][j] = result[i-1][j-1]+1;
                    maxs = Math.max(maxs,result[i][j]);
                }else{
                    result[i][j]=0;
                }
            }
        return maxs;
    }
    public static void main(String arg[]){
        Scanner sc = new Scanner(System.in);
        while(sc.hasNext()){
            String str1= sc.nextLine();
            String str2=sc.nextLine();
            System.out.print(getMax(str1,str2));
        }
    }
}
【每日一题】查找两个字符串中的最长公共子串 题目: 【查找两个字符串a,b中的最长公共子串】 查找两个字符串a,b中的最长公共子串。若有多个,输出在较短串中最先出现的那个。 注:子串的定义:将一个字符串删去前缀和后缀(也可以不删)形成的字符串。请和“子序列”的概念分开! 输入两个字符串 返回重复出现的字符 str1: abcdefghijklmnop str2: abcsafjklmnopqrstuvw output: jklmnop 此题实际上是一个动态规划问题 值得注意有两个概念我们要区分开: 子串:必须是连续出现的 子序列:在一 阅读详情

相关推荐

找出两个字符串的最长公共子串

题目: 给定两个字符串str1和str2,输出两个字符串的最长公共子串,如果最长公共子串为空,输出-1。 输入描述: 输入包括两行,第一行代表字符串srr1,第二行代表字符串str2。 1 ≤ length( str1), length(str2) ≤ 5000 输出描述: 输出包括一行,代表最长公共子串。 示例 输入 1AB2345CD 12345EF 输出 2345 解题思路 只需要几个变量,从右上角点开始,划“捺” 定义出发点,出发点一开始时(0,m-1) 出发点向左移动,遇到边界后向下移动 代码

JavaAlliance 8538

华为笔试——查找两个字符串a,b中的最长公共子串

华为校招笔试题——公共字符子串

加油加油!!! 431

华为机试:查找两个字符串a,b中的最长公共子串

一、题目: 描述 查找两个字符串a,b中的最长公共子串。若有多个,输出在较短串中最先出现的那个。 注:子串的定义:将一个字符串删去前缀和后缀(也可以不删)形成的字符串。请和“子序列”的概念分开! 本题含有多组输入数据! 输入描述: 输入两个字符串 输出描述: 返回重复出现的字符 二、输入输出示例: 三、思路: 固定最小的字符串,然后遍历另一个字符串,比较字符是否相同,相同则继续向下比并记录相同子串的字符数量;不同则继续遍历另一个字符串,同样比较最小字符串的字符是否与另一个字符串的后序

lzyhhhhh的博客 286

求解两个字符串的最长公共子串

# 求解两个字符串的最长公共子串 # 比如字符串1:helloworld;字符串2:hloop # # 则这两个字符串的最长公共子序列长度为2,最长公共子序列是:lo #问题定义:LCS[i][j]为以s1[i]与s2[j]为结尾的的最长公共子串的长度 #递推公式: # LCS(xn,ym)=LCS(xn-1,ym-1)+1 if x[n]==y[m] # LCS(xn,ym)=0 if x[n]!=y[m] def maxLCstring(string1,string2): len1 = .

程序认生 470

VC中基于TWAIN协议控制扫描仪-----初级版

PS:本人是C++小白一枚,在研究此功能时不知走了多少弯路

a1101000099的专栏 8788

MT6816角度传感器SPI通信避坑指南:从数据手册到稳定读取的3个关键步骤

本文详细解析了MT6816角度传感器SPI通信中的常见问题与解决方案,包括寄存器地址计算、SPI时序配置和数据校验等关键步骤。通过实测波形和代码示例,帮助工程师避开数据手册中的隐藏陷阱,实现稳定可靠的角度数据读取,特别适用于高精度电机控制场景。

weixin_42520573的博客 516

求两个字符串的最长的连续公共子串

这与求两个字符串的公共子序列要区分开,见http://blog.youkuaiyun.com/shandianling/article/details/7888050 但 求你方法与求公共子序列类似,而且要简单一点。 方法:动态规划. 循环遍历两个字符串,查找当s1[i]==s2[k] 的情况 然后保存在c[i][k]中,c[i][k]=c[i-1][k-1]+1 最后我们会得到类似以下矩阵

shandianling 1万+

FreeRtos——10、全局看门狗设计

RTOS 里的看门狗不只是为了证明 CPU 还在动,而是为了证明每个业务逻辑都在按预期的节奏“呼吸”。

qq_40170041的博客 900

查找两个字符串a,b中的最长公共子串

题目描述 查找两个字符串a,b中的最长公共子串。若有多个,输出在较短串中最先出现的那个。 输入描述: 输入两个字符串 输出描述: 返回重复出现的字符 输入 abcdefghijklmnop abcsafjklmnopqrstuvw 输出 jklmnop #include&lt;iostream&gt; #include&lt;vector&gt; #include&lt...

zrh_优快云的博客 1334

【Qt】使用QMediaPlayer播放视频

window平台可以安装K-Lite,linux平台一般各发行版都会默认安装GSteam。播放RTSP视频时,可以使用VLC播放器搭建一个视频推流服务器,用于拉流的客户端的调试。3、如果没有添加Qt环境变量,请把关联的Qt5MultimediaWidgets.dll和Qt5Multimedia.dll放到进程路径下否则也会报ServiceMissingError错误。2、需要安装解码器,否则报 ServiceMissingError 无法找到服务的错误。1、需要在.pro工程文件中引用对应模块。

奔涌的后浪的专栏 2218

NeRF必读:Mip-NeRF总结与公式推导

由于远景近景的分辨率不同,导致经典NeRF对于多尺度场景的表达存在明显瑕疵:NeRF对于近景的重建比较模糊而对于远景的重建出现锯齿。简单粗暴的策略是supersampling,但是费时费力。相较于NeRF使用的位置编码(PE)方式,Mip-NeRF提出了积分位置编码的方式(IPE).这种编码方式可以多尺度地描述空间中的信息分布,make sense.

i_head_no_back的博客 6077

最长公共连续子串

给出两个字符串(可能包含空格),找出其中最长的公共连续子串,输出其长度。  输入描述: 输入为两行字符串(可能包含空格),长度均小于等于50. 输出描述: 输出为一个整数,表示最长公共连续子串的长度。 #include #include #include using  namespace  std; int main() {     string  st

u012139156的博客 1546

基于STM32L4XX、HAL库的MMA8452QR1姿态传感器驱动程序设计

/ HAL库需要左移1位。#define MMA8452Q_I2C_ADDRESS 0x1D // SA0=1时的地址。* @param range: 量程(MMA8452Q_RANGE_2G/4G/8G)* @param haccel: MMA8452Q句柄。* @param haccel: MMA8452Q句柄。* @param haccel: MMA8452Q句柄。* @param haccel: MMA8452Q句柄。* @param haccel: MMA8452Q句柄。

zhusl6688的博客 769

美团点评_给出两个字符串(可能包含空格),找出其中最长的公共连续子串,输出其长度。

给出两个字符串(可能包含空格),找出其中最长的公共连续子串,输出其长度。 import java.util.*; public class Meituan_4 { public static void main(String[] arg){ Scanner sc = new Scanner(System.in); String str_1 = sc.nextLine(); Str...

Liam_fang的博客 3474

使用 Python 调用 GitHub REST API 爬取 GitHub 仓库信息(完整指南)

GitHub 提供了功能强大的 REST API,允许开发者通过编程方式访问 GitHub 上的仓库、用户、提交记录、PR(Pull Request)等信息。GitHub REST API 是 GitHub 官方提供的 API 接口,支持通过 HTTP 请求来操作 GitHub 上的资源。在本文中,我们将使用 Python 编写一个完整的爬虫程序,调用 GitHub 的 REST API 来爬取 GitHub 仓库的信息。目前 GitHub 使用的主要是 v3 版本的 REST API。

2201_76125261的博客 1110

提示词编写:从新手到专家的进阶之路

本文旨在为提示词编写者提供一条从新手到专家的进阶之路。我们将详细探讨提示词编写的背景与意义、基础与进阶技巧、实战应用以及最佳实践。通过逐步深入的分析与实操,读者将掌握提示词编写的核心要点,提高编写效率和作品质量。提示词是用于引导人工智能生成文本的关键词或短语,它包含了作者想要传达的主题、情感和细节。随着人工智能技术的普及,自动化写作工具逐渐应用于各行各业。为了提高写作效率,项目团队决定开发一款基于人工智能的自动化写作工具。成功开发了一款自动化写作工具,生成文本质量较高。

AI天才研究院 1085

【Day_19】查找两个字符串a,b中的最长公共子串

查找两个字符串a,b中的最长公共子串。若有多个,输出在较短串中最先出现的那个。 注:子串的定义:将一个字符串删去前缀和后缀(也可以不删)形成的字符串。请和“子序列”的概念分开!

qq_44631587的博客 358

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

求两个字符串的最长公共子串(初学者适用)

求两个字符串的最长公共子串(初学者适用) 何为公共子串? 即两个字符串中相等且连续的子串。 例如:串“abcde”和串“gabfde”中公共子串有ab”和“cde”两个。 何为最长公共子串呢? 即在上述“公共子串”的定义中加上最长二字, 上面例子中“cde”便是最长公共子串。 基本算法思想 大致思路 假设有串str1和串str2。挨个找出str1和str2中所有的公共子串,在寻找过程中只记录下长度...

qq_44902646的博客 5019

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

给出两个字符串(可能包含空格),找出其中最长的公共连续子串,输出其长度。...

#include <stdio.h> #include <string.h> #define N 50 int main(){ char s1[N],s2[N]; int dp[N][N],i,j,max_len=0; gets(s1); gets(s2); for(i=0...

1385

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

求两字符串最长公共连续子串---C++编程

题目:有两个字符串(可能包含空格),找出其中最长的公共连续子串,并输出其长度。  输入描述:输入为两行字符串(可能包含空格),长度均小于等于50。 输出描述:  输出为一个整数,表示最长公共连续子串的长度。 输入例子: abcde abgde 输出例子: 2 两种参考思路如下: (1)假设两个字符串str1和str2的长度分别为m和n,构建一个矩阵(即

rs勿忘初心的博客 7987

求两个字符串的最长公共子串

问题:有两个字符串str和str2,求出两个字符串中最长公共子串长度。 比如:str=acbcbcef,str2=abcbced,则str和str2的最长公共子串为bcbce,最长公共子串长度为5。 算法思路: 1、把两个字符串分别以行和列组成一个二维矩阵。 2、比较二维矩阵中每个点对应行列字符中否相等,相等的话值设置为1,否则设置为0。 3、通过查找出值为1的最长对角线就能找到最长公共...

南方以北 6万+

算法题(一):找出两个字符串的最长公共子串

import java.util.Scanner; public class Main { public static void fun(String str1, String str2){ if(str1==null || str2== null || str1.length()==0 || str2.length()==0){ return; } int len1 =...

qq_24034545的博客 4161

问题:求两个字符串的最长公共子串。 要求:输入两个字符串,输出它们的最长公共子串,包括长度。

问题:求两个字符串的最长公共子串。 要求:输入两个字符串,输出它们的最长公共子串,包括长度。

孑澈的专栏 1万+

最长连续公共子串

时间限制:1秒 空间限制:32768K 给出两个字符串(可能包含空格),找出其中最长的公共连续子串,输出其长度。 输入描述: 输入为两行字符串(可能包含空格),长度均小于等于50.输出描述: 输出为一个整数,表示最长公共连续子串的长度。输入例子1: abcde abgde输出例子1: 2#include<stdio.h> #include<vector> #include<stri

凤栖梧桐 1027
上一篇: 最大矩形面积 --漫漫算法路 刷题篇
下一篇: 字符串大小写分开打印 -- 漫漫算法路 刷题篇
qishun2xiao
博客等级 码龄9年 15粉丝 89原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值