OJ------查找两个字符串a,b中的最长公共子串
2016-09-13 08:57
417 查看
描述 | 查找两个字符串a,b中的最长公共子串。 详细描述:查找两个字符串a,b中的最长公共子串。 接口设计及说明: /***************************************************************************** Description : 查找两个字符串a,b中的最长公共子串 Input Param : String stringA, 输入字符串A String stringB, 输入字符串B Output Param : Return Value : 成功返回最大公共子串,失败返回null(如:数据错误) *****************************************************************************/ public static String iQueryMaxCommString(String stringA, String stringB) { /* 在这里实现功能,将结果填入输入数组中*/ return null; } |
---|---|
知识点 | 字符串 |
运行时间限制 | 10M |
内存限制 | 128 |
输入 | 输入两个字符串 |
输出 | 返回重复出现的字符 |
样例输入 | abcdefghijklmnop abcsafjklmnopqrstuvw |
样例输出 | jklmnop |
<pre name="code" class="java">import java.util.*; //asdfas werasdfaswer public class test{ public static void main(String[] args){ Scanner sc=new Scanner (System.in); while(sc.hasNext()){ String s1=sc.next(); String s2=sc.next(); System.out.println(match(s1,s2)); }sc.close(); } private static String match(String s1,String s2){ int[][] arr=new int[s1.length()+1][s2.length()+1]; int end=0,length=0; for(int i=0;i<s1.length();i++){ for(int j=0;j<s2.length();j++){ if(s1.charAt(i)==s2.charAt(j)){ arr[i+1][j+1]=arr[i][j]+1; }else{ arr[i+1][j+1]=0; //arr[i+1][j+1]=Math.max(arr[i][j+1], arr[i+1][j]); } if(arr[i+1][j+1]>length){ length=arr[i+1][j+1]; end=i+1; } }} //ad da if(length==0){return null;}else{return s1.substring(end-length,end);} } }
* 动态转移方程为:
* 如果xi == yj, 则 c[i][j] = c[i-1][j-1]+1
* 如果xi != yj, 那么c[i][j] = 0
相关文章推荐
- 198. House Robber
- 在Win7使用IBM Bluemix 之Blockchain Service 建立区块链应用App开发环境
- linux下导入、导出mysql数据库命令
- git --commit-msg缺失导致的missing Change-Id问题
- Delphi Socket 阻塞线程下为什么不触发OnRead和OnWrite事件
- mongoDB WiredTiger Storage Engine
- delphi TServerSocket阻塞线程单元 实例
- Android 华为手机物理键盘挡住了我的应用底部导航栏
- 解决redis-cli连接时出现Could not connect to Redis at 127.0.0.1:6379: Connection refused
- gitlab web登入密码忘记以后可以用如下方式修改密码
- python常用函数详解
- 计算sinx=x-x^3/3!+x^5/5!-x^7/7!+.........
- Python BeautifulSoup基本使用
- Leetcode #1 - Two Sum - Easy
- js 常见错误类型
- 指针铁律2/3:间接赋值是指针存在的最大意义
- DES & 3DES 加密算法
- matlab 求图像的连通区域的圆度并可视化
- 使用spring向servlet中注入
- localStoragesessionStorage