当前位置: 首页 > news >正文

输出最长公共字串

题目描述

给定两个字符串 text1 和 text2,返回这两个字符串的最长公共子序列

示例

示例 1:

输入:text1 = "abcde", text2 = "ace" 
输出:"ace" 

示例 2:

输入:text1 = "abc", text2 = "abc"
输出:"abc"

示例 3:

输入:text1 = "abc", text2 = "def"
输出:""

思路

本质之前写过的最长公共子序列一样,先求出最长公共子序列的长度,然后根据长度在遍历两个字符串,组成真正的最长公共子序列。

代码如下

	public String longestCommonSubsequenceToString(String text1, String text2) {int m = text1.length(), n = text2.length();int[][] dp = new int[m + 1][n + 1];// 统计最长公共子序列for(int i = 1;i < dp.length;i++){for(int j = 1;j < dp[0].length;j++){if(text1.charAt(i - 1) == text2.charAt(j - 1)){dp[i][j] = 1 + dp[i - 1][j - 1];}else{dp[i][j] = Math.max(dp[i][j - 1], dp[i - 1][j]);}}}// 记录最长公共子序列长度,int len = dp[m][n];char[] chars = new char[len];// 其实这里也不必定义char数组和记录最长公共子序列长度,直接使用StringBuilder来操作更简单,最后返回结果在reverse()一下就行。int i = m, j = n;// 从后向前遍历两个字符串while(i > 0 && j > 0){// 相等就加入if(text1.charAt(i - 1) == text2.charAt(j - 1)){chars[len - 1] = text1.charAt(i - 1);i--;j--;len--;}else if(dp[i - 1][j] > dp[i][j - 1]){i--;}else{j--;}}return new String(chars);}
http://www.lryc.cn/news/217704.html

相关文章:

  • 学习经验分享【NO.19】YOLOv5可视化训练过程
  • 低代码可视化逻辑编排工具:JNPF
  • Redis创始人开源最小聊天服务器,仅200行代码,几天功夫已获2.8K Star!
  • RK-3399pro 萤火虫firefly 官方unbuntu 固件系统安装搜狗中文输入法
  • 2014年亚太杯APMCM数学建模大赛A题无人机创造安全环境求解全过程文档及程序
  • Java字符串常用函数 详解5000字 (刷题向 / 应用向)
  • 在RabbitMQ中 WorkQueue 工作队列 和发布(publish)/订阅(Subscribe) 有什么区别?
  • 关闭Dell xps 系列笔记本触控屏
  • 物理内存的组织形式
  • IOS渲染流程之提交图层数据至RenderThread进程
  • shell学习脚本05(小滴课堂)
  • 长短期神经网络LSTM的博文分类,长短期神经网络的原理分析
  • 虹科干货 | 手把手教你通过CODESYS V3进行PLC编程(一)
  • rabbitmq的confirm模式获取correlationData为null解决办法
  • 【Linux】centos7安装配置及Linux常用命令
  • LCD调试
  • 【计算机网络】金管局计算机岗位——计算机网络(⭐⭐⭐⭐)
  • 第十四章 ObjectScript 系统标志和限定符 (qspec) - 限定符与标识
  • 测试这碗饭,现在是越来越难吃了
  • 这个超实用的门禁技巧,让办公楼安全更简单高效!
  • C++虚表与虚表指针详解
  • 12 pinctrl 和 gpio 子系统
  • 【复盘】记录一次JVM 异常问题 java.lang.OutOfMemoryError: unable to create new native thread
  • Java基础之类型(内涵面试题)
  • idea好用插件整理
  • 【WinForm详细教程五】WinForm中的MenuStrip 、ContextMenuStrip 、ToolStrip、StatusStrip控件
  • 研究人员发现34个Windows驱动程序易受完全设备接管攻击
  • 最新 vie-vite框架下 jtopo安装使用
  • 基础课20——智能客服系统的使用维护
  • Aop自定义注解生成日志