获取两个字符串中最大相同子串
题目说明:
获取两个字符串中最大相同子串。比如:str1 = "abcwerthelloyuiodefabcdef";str2 = "cvhellobnm"提示:将短的那个串进行长度依次递减的子串与较长的串比较。
public class StringDemo2 {/*获取两个字符串中最大相同子串。比如:str1 = "abcwerthelloyuiodefabcdef";str2 = "cvhellobnm"提示:将短的那个串进行长度依次递减的子串与较长的串比较。*///前提:两个字符串中只有一个最大相同子串public String getMaxSameString1(String str1,String str2){if(str1 != null && str2 != null){String maxStr = (str1.length() >= str2.length())? str1 : str2;String minStr = (str1.length() < str2.length())? str1 : str2;int length = minStr.length();for(int i = 0;i < length;i++){for(int x = 0,y = length - i;y <= length;x++,y++){String subStr = minStr.substring(x,y);if(maxStr.contains(subStr)){return subStr;}}}}return null;}// 如果存在多个长度相同的最大相同子串// 此时先返回String[],后面可以用集合中的ArrayList替换,较方便public String[] getMaxSameString2(String str1, String str2) {if (str1 != null && str2 != null) {StringBuffer sBuffer = new StringBuffer();String maxString = (str1.length() > str2.length()) ? str1 : str2;String minString = (str1.length() > str2.length()) ? str2 : str1;int len = minString.length();for (int i = 0; i < len; i++) {for (int x = 0, y = len - i; y <= len; x++, y++) {String subString = minString.substring(x, y);if (maxString.contains(subString)) {sBuffer.append(subString + ",");}}
// System.out.println(sBuffer);if (sBuffer.length() != 0) {break;}}String[] split = sBuffer.toString().replaceAll(",$", "").split("\\,");return split;}return null;}@Testpublic void testGetMaxSameString(){String str1 = "abcwerthello1yuiodefabcdef";String str2 = "cvhello1bnmabcdef";String s1 = getMaxSameString1(str1,str2);String[] s2 = getMaxSameString2(str1, str2);System.out.println(s1);System.out.println(Arrays.toString(s2));}}
获取两个字符串中最大相同子串相关推荐
- String类型的算法题(获取子串在主串中出现的次数)和(获取两个字符串中最大相同子串)-Java代码实现
Java获取子串在主串中出现的次数 package BaiYSExer2;import org.junit.Test; /*** @author Baiysmart* @create 2020-03- ...
- java求最大子串_Java获取两个字符串中最大相同子串的方法
"abcwerthelloyuiodef" "cvhellobnm" 思路: 1,将短的那个子串按照长度递减的方式获取到. 2,将每获取到的子串去长串中判断是否 ...
- 1. 获取两个字符串中最大相同子串
获取两个字符串中最大相同子串 分析 比如有两个字符串 str1 = "eysdfghjkl"; str2 = "cxbghjp"; 需要找出这里两个字符串中最大 ...
- java基础—找出两个字符串中最大的子串
// 找一个字符串的最大子串public static void main(String[] args) {String s1 = "qwerabcdtyuiop";String ...
- 字符串数组-获取两个字符串中最大的相同子串(最大相同子串有且只有一个)
public String getMaxSameStr(String str1,String str2){if (str1 != null && str2 != null){Strin ...
- 找出两个字符串中最大子字符串,如abractyeyt,dgdsaeactyey的最大子串为actyet
// 最大子字符串.cpp : 定义控制台应用程序的入口点. // //找出两个字符串中最大子字符串,如"abractyeyt","dgdsaeactyey"的 ...
- python在长字符串中寻找重复子串_Python 入门到精通
1.变量 1.python不用事先声明变量,赋值过程中就包含了变量声明和定义的过程 2.用"="赋值,左边是变量名,右边是变量的值 1.1. 数字 整数 int_var = 1 长 ...
- java 字符串子串_java实现字符串匹配求两个字符串的最大公共子串
本文实例讲述了java实现求两个字符串最大公共子串的方法.分享给大家供大家参考,具体如下: 最近在项目工作中有一个关于文本对比的需求,经过这段时间的学习,总结了这篇博客内容:求两个字符串的最大公共子串 ...
- 找出两个字符串中最长的相同子字符串
//找出两个字符串中最长的相同子字符串public class Stringdemo {public static void main(String[] args) {String str1 = ne ...
最新文章
- not syncing : corrupted stack end detected inside scheduler解决办法 以及高版本的激活码!
- shell脚本编程基础
- Ionic - 先进的 HTML5 移动开发框架和 SDK
- Marketing Cloud的语音输入功能
- 解决This picacion faied to trt becuse t could, not find or load the Qt platform plugin “windows““问题
- JDBC粗略学习( 阿巴阿巴阿巴阿巴)
- c++ fork 进程时 共享内存_尚学堂百战程序员:Python多进程与共享内存
- mvn -DskipTests和-Dmaven.test.skip=true区别
- 句句真研—每日长难句打卡Day20
- 从零实现深度学习框架——实现Tensor的反向传播
- mybatis逆向工程利用mybatis-generator-core自动生成代码
- WARNING: Too many active WebGL contexts. Oldest context will be lost
- Linux虚拟网络基础——Bridge
- 两种方法,word文件转换成PDF文件
- 什么是Android Instant Apps?
- 计算机中c盘标准规划为什么,为什么电脑c盘老是很小的空间··定期清理了
- 一图看懂西方哲学全脉络
- 史上最全的用Python操控手机APP攻略!建议收藏!
- 做一个有志青年,人生才有意义
- 摄像头P2P软件提供,完美解决打洞及音视频、用户码传输问题。
热门文章
- 小蚂蚁学习数据结构(26)——题目——输出二叉树上值大于x的算法
- CentOS7 安装管理KVM虚拟机
- Kinect+OpenNI学习笔记之2(获取kinect的颜色图像和深度图像)
- 台大陈蕴侬、李宏毅“应用深度学习”课程(国语)
- 台大李宏毅2017机器学习国语课程(更新)
- Tensorflow 实战 Google 深度学习框架(第2版)---- 10.2.2节 P274 代码
- Eclipse 使用 SVN 插件后修改用户方法汇总
- iOS项目的命名规范
- C# WinForm 判断程序是否已经在运行,且只允许运行一个实例
- 为什么dubbo使用ZkClient作为zookeeper的客户端