本篇内容主要讲解“怎么用Java输出最长公共子串”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么用Java输出最长公共子串”吧!
创新互联成立于2013年,是专业互联网技术服务公司,拥有项目成都做网站、成都网站制作网站策划,项目实施与项目整合能力。我们以让每一个梦想脱颖而出为使命,1280元宝山做网站,已为上家服务,为宝山各地企业和个人服务,联系电话:13518219792
1.简述:
给定两个字符串str1和str2,输出两个字符串的最长公共子串
题目保证str1和str2的最长公共子串存在且唯一。
数据范围: 要求: 空间复杂度 ,时间复杂度
输入:
"1AB2345CD","12345EF"
返回值:
"2345"
2.代码实现:
import java.util.*; public class Solution { public String LCS (String str1, String str2) { //dp[i][j]表示到str1第i个个到str2第j个为止的公共子串长度 int[][] dp = new int[str1.length() + 1][str2.length() + 1]; int max = 0; int pos = 0; for(int i = 1; i <= str1.length(); i++){ for(int j = 1; j <= str2.length(); j++){ //如果该两位相同 if(str1.charAt(i - 1) == str2.charAt(j - 1)) //则增加长度 dp[i][j] = dp[i - 1][j - 1] + 1; else //该位置为0 dp[i][j] = 0; //更新最大长度 if(dp[i][j] > max){ max = dp[i][j]; pos = i - 1; } } } return str1.substring(pos - max + 1, pos + 1); } }
到此,相信大家对“怎么用Java输出最长公共子串”有了更深的了解,不妨来实际操作一番吧!这里是创新互联网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!