牛客题解 | 平方串

题目

题目链接

题解

题目难度:中等

知识点:LCS(最长公共子序列问题),动态规划

分析:

本题实际是要找出s的最长子序列,看到这个问题就应该想到利用动态规划去解决。一般是找s1、s2两个字符串中的最长子序列,那么该题中就可以遍历s,以每个字符位置作为分割点,将s分割成s1和s2两个字符串,利用动态规划去求解s1和s2中的最长子序列,结果存储在dp[i][j]的二维数组中。对于dp数组,下标从1开始对应字符串中的0下标对应的字符。
图片说明
通过上面一个dp数组表,就可以算出最长子序列长度为3



import java.util.Scanner;

public class Main {
  public static void main(String[] args) {
    Scanner sc = new Scanner(System.in);
    String s = sc.nextLine();
    int len = s.length();
    int res = 0;
    for(int i = 0; i
posted @ 2025-03-05 11:47  wangxiaoxiao  阅读(7)  评论(0)    收藏  举报