java 获取两个字符串之间最长相同的连续字符串
时间: 2024-01-27 12:04:22 浏览: 35
你可以使用动态规划的方法来解决这个问题。首先,创建一个二维数组dp,其中dp[i][j]表示以字符串1的第i个字符和字符串2的第j个字符结尾的最长相同连续字符串的长度。然后,遍历字符串1和字符串2的所有字符,根据以下规则更新dp数组:
1. 如果字符串1的第i个字符和字符串2的第j个字符相等,则dp[i][j] = dp[i-1][j-1] + 1;
2. 如果字符串1的第i个字符和字符串2的第j个字符不相等,则dp[i][j] = 0。
在更新dp数组的过程中,记录下最长连续字符串的长度maxLen和结束位置endIndex。最后,根据maxLen和endIndex可以获取到最长相同连续字符串。
下面是一个示例代码:
```java
public static String findLongestCommonSubstring(String str1, String str2) {
int len1 = str1.length();
int len2 = str2.length();
int[][] dp = new int[len1 + 1][len2 + 1];
int maxLen = 0;
int endIndex = 0;
for (int i = 1; i <= len1; i++) {
for (int j = 1; j <= len2; j++) {
if (str1.charAt(i - 1) == str2.charAt(j - 1)) {
dp[i][j] = dp[i - 1][j - 1] + 1;
if (dp[i][j] > maxLen) {
maxLen = dp[i][j];
endIndex = i - 1;
}
} else {
dp[i][j] = 0;
}
}
}
return str1.substring(endIndex - maxLen + 1, endIndex + 1);
}
```
使用方法如下:
```java
String str1 = "abcdefg";
String str2 = "bcde";
String longestCommonSubstring = findLongestCommonSubstring(str1, str2);
System.out.println(longestCommonSubstring); // 输出 "bcde"
```
这样就可以获取到两个字符串之间最长相同的连续字符串。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)