首页 > 其他分享 >HJ65 查找两个字符串a,b中的最长公共子串

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

时间:2023-07-21 19:44:52浏览次数:44  
标签:子串 charAt int str2 str1 HJ65 查找 dp String

1. 题目

读题

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

 

考查点

 

2. 解法

思路

 

代码逻辑

 

具体实现

自行实现 

public class HJ065 {

public static void main(String[] args) {
Scanner sc = new Scanner(System.in);

System.out.println(dp(sc.nextLine(), sc.nextLine()));
}

public static String dp(String str1, String str2) {

if (str1.length() > str2.length()) {
String temp = str1;
str1 = str2;
str2 = temp;
}
int m = str1.length();
int n = str2.length();
int[][] dp = new int[m][n];

int maxLen = 0;
int index = 0;
for (int i = 0; i < m; i++) {
for (int j = 0; j < n; j++) {
if (i == 0 && j == 0) {
dp[i][j] = str1.charAt(0) == str2.charAt(0) ? 1 : 0;
} else if (i == 0) {
dp[i][j] = str1.charAt(0) == str2.charAt(j) ? 1 : 0;
} else if (j == 0) {
dp[i][j] = str1.charAt(i) == str2.charAt(0) ? 1 : 0;
} else {
if (str1.charAt(i) == str2.charAt(j)) {
dp[i][j] = dp[i - 1][j - 1] + 1;
} else {
dp[i][j] = 0;
}
}

if (dp[i][j] > maxLen) {
maxLen = dp[i][j];
index = i;
}
}

}
return str1.substring(index - maxLen + 1, index + 1);

}
}

3. 总结

标签:子串,charAt,int,str2,str1,HJ65,查找,dp,String
From: https://www.cnblogs.com/shoshana-kong/p/17548700.html

相关文章

  • 9Java中如何判断一个字符串是否包含另一个子串
    在Java中,我们经常会遇到需要判断一个字符串是否包含另一个子串的情况。对于这个问题,我们可以使用一些简单而有效的方法来解决。本文将介绍几种常见的方法,以及它们的优缺点。方法一:使用contains方法Java中的String类提供了一个contains方法,可以很方便地判断一个字符串是否包含另......
  • Linux python 查找模块和版本号
    LinuxPython查找模块和版本号作为一名经验丰富的开发者,你需要教会一位刚入行的小白如何在Linux环境下使用Python查找模块和版本号。以下是一份详细的步骤和相应的代码注释,帮助他完成这个任务。步骤步骤描述步骤一打开终端步骤二运行Python交互式解释器步骤三......
  • Python中如何查找到空格结束
    Python中如何查找到空格结束在Python中,我们经常需要处理字符串,并从中提取出特定的内容。如果我们想要从一个字符串中查找到空格结束,即从空格开始的位置,一直到下一个空格之前的内容,可以使用一些方法来解决。方法一:使用split()函数Python中的split()函数可以将字符串分割成一个列......
  • 代码随想录算法训练营第57天 | ● 647. 回文子串 ● 516.最长回文子序列 ● 动
     第九章 动态规划part17●  647. 回文子串  ●  516.最长回文子序列●  动态规划总结篇 今天 我们就要结束动态规划章节了,大家激不激动!!!   详细布置   647. 回文子串    动态规划解决的经典题目,如果没接触过的话,别硬想 直接看题解。https:......
  • linux 中快速查找ip的方法
     001、ifconfig [root@PC1test03]#ifconfig|headens33:flags=4163<UP,BROADCAST,RUNNING,MULTICAST>mtu1500inet192.168.254.130netmask255.255.255.0broadcast192.168.254.255inet6fe80::fc6d:b22a:39c9:7257prefixlen64sco......
  • 二分查找
    二分查找本文的内容总结于该视频用二分查找来解决这四个问题时,边界条件很容易出错让我们从另一个角度来看这个问题:有红蓝两个指针,如何让这两个指针移动到各自的边界伪代码:对于上面的四种情况,我们只要控制IsBlue和要返回红色指针还是蓝色指针就可以做到以下是我用python......
  • Selenium查找元素、元素的属性和方法
    查找元素官方文档:https://www.selenium.dev/documentation/webdriver/elements/locators/一般通过find_element或者find_elements方法获取元素后的类型是WebElement或该类型的列表。语法:#查找第一个符合条件的WebElement元素并返回。driver.find_element(By类型,"查找的语......
  • 二分查找法 的代码实现(JS版)
    递归版本:constBinarySearch=(function(){/***内部二分查找算法*@param{number[]}nums-有序数组*@param{number}l-左端点*@param{number}r-右端点*@param{number}target-目标数值*/constsearch=funct......
  • 数据结构 查找 红黑树查找
    1.红黑树的定义红黑树可以看作是对平衡二叉树的进一步改进。平衡二叉树的一个缺点在于插入和删除操作中为了维持平衡会消耗很大的执行代价,降低效率。红黑树的结构是在平衡二叉树的平衡标准上稍微放宽得到的。红黑树的定义:......
  • python怎么查找哪个插件是否安装
    在Python中,我们可以使用pkg_resources模块来查找是否安装了特定的插件。pkg_resources是Python标准库setuptools的一部分,它提供了许多有用的功能,包括查找和管理安装的包。下面是一个示例代码,演示了如何使用pkg_resources模块来查找并验证是否安装了特定的插件:importpkg_resource......