// 共同子段
// 4、输出两个字符串中的最长公共子串。
// 例如:“abcfabcd”和“abcdabce”中最长公共子串为“abcd”。
public static void f4(){
String str1 = "abcfabcd";
String str2 = "arcfabdabce";
// 获取两个字符的所有字串的情况
//字符串1
ArrayList<String> list1 = new ArrayList<String>();
for(int i=0;i<str1.length();i++){
for(int j=1;j<str1.length()-i+1;j++){
list1.add(str1.substring(i, i+j));
}
}
//字符串2
ArrayList<String> list2 = new ArrayList<String>();
for(int i=0;i<str2.length();i++){
for(int j=1;j<str2.length()-i+1;j++){
list2.add(str2.substring(i, i+j));
}
}
// 得到了两个字符串的所有子串
// 在list1 中提取元素 , 看list2 中是否有相同的子串
ArrayList<String> sameStr = new ArrayList<String>();
for(int i=0;i<list2.size();i++){
if(list1.contains(list2.get(i))){ //有这个子串
// System.out.println("两个字符串中相同的子串味:"+list2.get(i));
sameStr.add(list2.get(i)); //保存两个字符串中相同的子串
}
}
// 找到最长的子段
String maxLength = null;
int maxIndex = sameStr.get(0).length();
for(int i=0;i<sameStr.size();i++){
if(maxIndex<sameStr.get(i).length()){
maxIndex = sameStr.get(i).length();
maxLength = sameStr.get(i);
}
}
System.out.println("两个字符串中最大长度相同子串为:"+maxLength);
//输出测试
// for(int i=0;i<list1.size();i++){
// System.out.println("str1的子串:"+list1.get(i));
// System.out.println("str2的子串:"+list2.get(i));
// }
}
分享到:
相关推荐
根据给定的信息,本文将详细解释如何在一个字符串中查找特定子串出现的次数,并通过提供的代码示例来进一步阐述这一过程。我们将从以下几个方面进行深入探讨: ### 1. 字符串与子串的基本概念 #### 1.1 字符串 在...
### 两个字符串中最大相同的子串 #### 问题描述 本题目主要关注的是在两个给定的字符串中找到最长的相同子串。给定的两个字符串分别为 `"qwerabcdtyuiop"` 和 `"xcabcdvbn"`。目标是找出这两个字符串中的最长相同...
在计算机科学中,查找两个字符串中的最大公共子串是一个非常实用的问题,它广泛应用于文本处理、生物信息学等多个领域。例如,在文本处理中,我们可能需要比较两篇文档之间的相似度;在生物信息学中,则可以用于比较...
但这个方法通常用于更复杂的字符串处理,比如匹配模式。 6. **Java 图片处理** 虽然文件名列表中有一个名为`Java.jpg`的文件,但这通常与获取字符串子串没有直接关系。在Java中,处理图片可能涉及`java.awt.image`...
标题中的“输出一个字符串的全部子串”是指在编程中,我们需要实现一个功能,能够从一个给定的字符串中提取出所有的子串。...这是一个典型的字符串处理问题,适用于需要对字符串进行特定子串提取的场景。
在编程领域,求解两个字符串的最长公共子串是一个经典问题,主要应用于文本处理、比较和搜索算法。这里我们将深入探讨如何使用Java实现这一方法,同时结合华为在线判题平台(OJ)的要求来编写代码。 首先,我们需要...
VB 6.0 在字符串中用一子串替换另一子串,采用VB中内置的Replace函数来实现,类似这种的替换字符串方法,在平时使用十分广泛,在WEB编程的ASP/PHP/ASP.NET中,同样使用广泛。本示例中,主要是替换一个字符串中的指定...
在编程领域,最长公共子串(Longest Common Substring,LCS)问题是一个经典的问题,它寻找两个或多个字符串中的最长连续子...通过理解和掌握这种方法,可以加深对PHP动态规划和字符串处理的理解,进一步提高编程能力。
在本文中,我们将深入探讨如何使用MASM32汇编语言来实现一个判断字符串1是否为字符串2子串的函数。这个功能是通过调用Windows API中的`lstrcpyn...这种方法不仅适用于学习汇编语言,也对理解底层字符串处理机制有帮助。
对于面试而言,理解和掌握这两种方法有助于展示候选人在字符串处理和算法设计上的能力。同时,这也体现了在面对复杂问题时,如何通过变换思维角度,将问题简化为更易于处理的形式,这是编程解决问题的重要技巧之一。...
《字符串处理通用程序汇编语言》 在计算机编程中,字符串处理是一项基本且重要的任务,涉及到文本数据的查找、删除、替换以及插入等操作。本文将深入探讨如何使用汇编语言实现这些功能,并分析相关寄存器的作用和...
在编程领域,字符串处理是一项基础且重要的任务。在C#中,处理字符串时,我们经常需要从一个较大的字符串中提取出特定部分,比如位于两个已知字符串之间的子串。这在解析日志、处理配置文件或者从HTML源码中提取信息...
这个"纯C++ 字符串处理函数大全源码"正是为了满足这种需求而设计的,它包含了作者自定义封装的一系列字符串操作函数。 首先,`StringProcess.cpp`和`StringProcess.h`是C++中的源代码文件和头文件。`.cpp`文件通常...
在编写需要大量字符串处理的程序时,使用字符串模块可以减少重复代码,提高代码的重用性和效率。总的来说,字符串模块为 Fortran 程序员提供了一种简单而有效的方式来处理字符串,使得字符串操作更容易和可读。
学习这个VI可以帮助你理解LabView中的基本编程概念和字符串处理技巧。通过分析和修改这个程序,你可以进一步掌握LabView的使用,并将其应用于其他文本处理任务。同时,这也展示了LabView在处理数据和实现算法方面的...
DB2 中的字符串处理函数可以分为多种类型,包括字符转换函数、去空格函数、取子串函数、字符串比较函数和字符串操作函数等。 一、字符转换函数 * ASCII() 函数:返回字符表达式最左端字符的 ASCII 码值。在 ASCII...
在C/C++编程中,`strtok`函数是一种常用的字符串处理工具,用于将字符串分割成多个子串。这个函数在处理复杂格式的数据时非常有用,比如解析包含多种数据类型的字符串。在给定的场景中,我们需要从一个字符串中提取...
### Python七种方法判断字符串是否包含子串 在Python编程中,经常需要处理字符串相关的操作,其中判断一个字符串是否包含另一个子串是最基本且常见的需求之一。本文将详细介绍七种不同的方法来完成这一任务,并对每...
在编程领域,字符串操作是常见的任务之一,尤其是在算法设计和数据处理中...通过理解并掌握这种动态规划解决方案,可以扩展到处理更复杂的问题,比如寻找多个字符串的最大公共子串或者最长公共子序列(不连续的子串)。
在JavaScript编程中,有时我们需要找出两个字符串之间的最长公共子串,这是字符串处理中一个常见的问题。最长公共子串是指在两个或多个字符串中都存在的最长的连续字符序列。本篇文章将详细讲解如何通过自定义函数来...