Lintcode—(5)最长公共子串
来源:互联网 发布:originlab mac 编辑:程序博客网 时间:2024/05/01 19:53
给出两个字符串,找到最长公共子串,并返回其长度。
注意事项
子串的字符应该连续的出现在原字符串中,这与子序
给出A=“ABCD”,B=“CBCE”,返回 2
public class Solution { /** * @param A, B: Two string. * @return: the length of the longest common substring. */ public int longestCommonSubstring(String A, String B) { // write your code here int n = A.length(); int m = B.length(); int num = 0; int[][] dp = new int[n + 1][m + 1]; // ///不赋值时的初始值为0 for (int i = 1; i <= n; i++) { char c1 = A.charAt(i - 1); for (int j = 1; j <= m; j++) { char c2 = B.charAt(j - 1); if (c1 == c2) { dp[i][j] = dp[i - 1][j - 1] + 1; //出现一个公共字符就加1 } else { dp[i][j] = 0; } num = Math.max(num, dp[i][j]); } //return num; /////for循环结束后才return } return num; }}
解题思路:
比较A和B中相同的字符,如果有相同的字符,数组dp增加一个元素并值相对前一位元素加1(没有元素时为0)。
0 0
- Lintcode—(5)最长公共子串
- Lintcode(5)-最长公共子串
- LintCode-最长公共子串
- LintCode 最长公共子串
- LintCode : 最长公共子串
- LintCode : 最长公共子串
- LintCode 最长公共子串
- 最长公共子串-LintCode
- lintcode -- 最长公共子串
- LintCode之最长公共子串(Longest Common Substring)
- lintcode-最长公共子串-79
- lintcode 求最长公共子串
- lintcode 之 最长公共子串
- LintCode 79 最长公共子串
- LintCode : 最长公共子序列
- LintCode 最长公共子序列
- 最长公共子序列-LintCode
- lintcode--最长公共子序列
- Android 6.x 新的运行时权限
- 《易经》全文翻译
- NHibernate之旅(3):探索查询之NHibernate查询语言(HQL)
- win10 如何开启guest
- python数据分析学习笔记三
- Lintcode—(5)最长公共子串
- JS:正则表达式学习笔记(六) - 贪婪模式与非贪婪模式
- [iOS/OC]快速枚举enumerateObjectsUsingBlock
- NHibernate之旅(4):探索查询之条件查询(Criteria Query)
- Windows下的免费邮件服务器软件hMailServer
- 简单显示顶部通知的Demo
- [Leetcode] #20 Valid Parentheses
- 准备研究netty源码
- mybatis入门-第一个程序