求两字符串的最大相同子串--JAVA实现
来源:互联网 发布:电脑间数据同步 编辑:程序博客网 时间:2024/05/22 14:19
啥也不说了 都在代码里了 ^-^
package 面试小算法.相同子串;import java.util.ArrayList;import java.util.List;import 面试小算法.Test04;public class Test { /* * 总体思路为:先找出小字符串 外层循环遍历小字符串 内层循环遍历小字符串索引+1的字符串 * 从小字符串中截取(外层索引,内层索引) * 判断 分两种 当可以为本身字符串时 只要大字符串中包含次字符串就为true * 当不能为本身字符串时 且真并为本身时 判断大字符中是否包含此字符串 如包含则为true * 上述两个有一个成立就判断当前字符串长度是否大于当前存最大字符串长度的变量 * 如大于则清空集合中元素并把最大字符串长度变为当前字符串长度,再往集合中添加这个元素 * 如果等于当前集合的最大元素则直接添加进去就OK了。 */ public List<String> searchMaxString(String s1,String s2,boolean isSelf){ //获取大字符串 和 小字符串 String shortS = s1.length()>s2.length()?s2:s1; String longS = s1.length()>s2.length()?s1:s2; //判断当前子串长度是否是最长的 int length = 0; //存储结果 之所以用集合是因为可能有多个长度相同的子串 List<String> result = new ArrayList<String>(); for(int i=0;i<shortS.length();i++){ for(int j=i+1;j<=shortS.length();j++){ //截取当前位置起的长度 String temp = shortS.substring(i,j); //可以等于自身时 boolean flag1 = isSelf && longS.contains(temp); //不可以等于自身时 boolean flag2 = !isSelf && temp!=shortS && longS.contains(temp); //假如满足其中一条 if(flag1 || flag2){ //假如长度当于当前最小子串清空集合并添加元素 if(temp.length()>length){ length = temp.length(); result.clear(); result.add(temp); //假如等于添加进集合 }else if(temp.length()==length){ result.add(temp); } } } } return result; } public static void main(String[] args){ String a = "abceLoveXyzasfdalllllfdsafdsfds"; String b = "erebgdLovegureererfdsfdsalllllfdsafdsa"; List<String> result = Test04.getMaxSameSubStr(a, b, true); for(String s:result){ System.out.println(s); } }}
0 0
- 求两字符串的最大相同子串--JAVA实现
- 求两个字符串的最大相同子串
- 求任意两个字符串的最大相同子串
- 求n个字符串的最大相同子串
- 求给定两字符串的最长相同子串
- Java String 字符串中的最大相同子串实现
- 求两字符串最大公共子串
- 获取两个字符串中最大相同子串的实现
- java/C++取两个字符串的最大相同子串
- [Java]取得两个字符串的最大相同子串
- java练习获取两个字符串的最大相同子串
- java基础-找出两个字符串相同的最大子串
- 求两个字符串中的最大相同子串 SubString
- java实现字符串匹配问题之求两个字符串的最大公共子串
- String包装类应用之 获取两字符串的最大相同子串
- 用javascript求两个字符串最大的相同的子串
- C++实现求两个字符串的最大公共子串
- 求两个字符串之间的最大相同的最大子字符串!!
- 关于信号三种处理方式初步理解!
- linux命令界面入门级操作
- IOS UIPanGestureRecognizer 移动图片
- Java Object类方法
- iOS证书及签名配置正常,但打包程序在低版本设备安装不上问题解决方法
- 求两字符串的最大相同子串--JAVA实现
- 杨辉三角
- 机器学习(Machine Learning)&深度学习(Deep Learning)资料汇总
- lightoj1009 - Back to Underworld【dfs】
- 【c语言】将二进制整数转换为字符
- box-sizing的细致用法
- 使用2to3将代码移植到Python 3
- android开发环境
- 百度分享——1