首页 > 其他分享 >HJ75 公共子串计算

HJ75 公共子串计算

时间:2023-07-21 19:55:10浏览次数:44  
标签:子串 charAt int str2 str1 HJ75 公共 dp

1. 题目

读题

 HJ75 公共子串计算

 

考查点

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

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

2. 解法

思路

 

代码逻辑

 

具体实现

 自行实现

public class HJ075 {

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

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

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

int m = str1.length();
int n = str2.length();
int[][] dp = new int[m][n];

int maxLen = 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];
}
}

}
return maxLen;


}
}

 

3. 总结

标签:子串,charAt,int,str2,str1,HJ75,公共,dp
From: https://www.cnblogs.com/shoshana-kong/p/17548713.html

相关文章

  • HJ65 查找两个字符串a,b中的最长公共子串
    1.题目读题 HJ65 查找两个字符串a,b中的最长公共子串 考查点 2.解法思路 代码逻辑 具体实现自行实现 publicclassHJ065{publicstaticvoidmain(String[]args){Scannersc=newScanner(System.in);System.out.println(dp(sc.n......
  • 9Java中如何判断一个字符串是否包含另一个子串
    在Java中,我们经常会遇到需要判断一个字符串是否包含另一个子串的情况。对于这个问题,我们可以使用一些简单而有效的方法来解决。本文将介绍几种常见的方法,以及它们的优缺点。方法一:使用contains方法Java中的String类提供了一个contains方法,可以很方便地判断一个字符串是否包含另......
  • 最近公共祖先(LCA)
    向上标记法时间复杂度:$O(n)$待查询点为a和b,首先从a点向根节点进行搜索,将路径上的点进行标记,再从b点向根节点进行搜索,同时检测路径上的点是否被标记过,第一次检测到的点即为a,b两点的最近公共祖先倍增时间复杂度预处理:$O(nlog_n)$查询:$O(log_n)$相关概念及性质节点祖先:从......
  • 代码随想录算法训练营第57天 | ● 647. 回文子串 ● 516.最长回文子序列 ● 动
     第九章 动态规划part17●  647. 回文子串  ●  516.最长回文子序列●  动态规划总结篇 今天 我们就要结束动态规划章节了,大家激不激动!!!   详细布置   647. 回文子串    动态规划解决的经典题目,如果没接触过的话,别硬想 直接看题解。https:......
  • 公共Mono模块
    作用:让没有继承Mono的类可以开启协程,可以统一管理Update的更新。-------------------------------MonoManager------------------------------------usingSystem.Collections;usingSystem.Collections.Generic;usingUnityEngine;usingUnityEngine.Events;publicclassMon......
  • LeetCode —— 子串
    560. 和为K的子数组(哈希表)官方题解:https://leetcode.cn/problems/subarray-sum-equals-k/solution/he-wei-kde-zi-shu-zu-by-leetcode-solution/假设left到right下标的子数组和为knums[left...right]=kpreSum[right]-preSum[left]=kpreSum[left]=preSum[rig......
  • 5. 最长回文子串
    给你一个字符串s,找到s中最长的回文子串。如果字符串的反序与原始字符串相同,则该字符串称为回文字符串。示例1:输入:s="babad"输出:"bab"解释:"aba"同样是符合题意的答案。>动态规划classSolution{public:stringlongestPalindrome(strings){int......
  • 最长回文子串时间复杂度为O(n)的算法
    给你一个字符串s,找到s中最长的回文子串。如果字符串的反序与原始字符串相同,则该字符串称为回文字符串示例1:输入:s="babad"输出:"bab"解释:"aba"同样是符合题意的答案。示例2:输入:s="cbbd"输出:"bb" 提示:1<=s.length<=1000s仅由数字和英文字母组成来源:力扣(LeetCo......
  • 最近公共祖先(LCA)
    最近公共祖先(LCA)主要思路:一个节点的\(2^n\)的祖先是那个节点\(2^{n-1}\)的祖先的\(2^{n-1}\)的祖先也就是说\(f[x][n]=f[f[x][n-1]][n-1]\)还要计算\(log_2\)的值,记录深度#include<bits/stdc++.h>usingnamespacestd;constintMAXN=5e5+10;intfa[MAXN][30],lg[M......
  • 公共操作-推导式(集合、列表、字典)
    1'''2Python推导式(Comprehensions)是一种简洁而强大的语法,用于创建新的数据结构(如列表、集合和字典)或对现有数据结构进行转换。3它可以使用更简单的方式完成迭代、筛选、映射等操作。45'''6#1.循环生成列表7#1.1准备⼀个空列表8list1=[]9#1.2书......