找出两个字符串中最大子字符串【Java算法】
1.初始状态:flag1指向str1的第0位,flag2指向str2的第0位;
2.flag2在str2中移动,直至找到与str1中flag1指向的字符相同的字符;
3.i=flag1;j=flag2;i++;j++循环向后移动,判断两个字符是否相等,记录字符串和长度,直至不等;
4.退出循环后,将字符串长度与最长值比较,判断是否为最长;
5.flag2++,继续2,3,4,直至flag指向str2的最后一个字符;
6.flag1++;flag2=0,继续2,3,4,5
public class MaxSubString {
public static String getMaxSubString(String str1, String str2) {
int maxLen = 0;
String result = "";
int len1 = str1.length();
int len2 = str2.length();
for (int flag1 = 0; flag1 < len1; flag1++) {
for (int flag2 = 0; flag2 < len2; flag2++) {
int len = 0;
String str = "";
//找到相同字符后,再循环判断之后的字符知否相同,记录相同的字符长度,判断是否为最大子串
if (str1.charAt(flag1) == str2.charAt(flag2)) {
int i = flag1;
int j = flag2;
while (i < len1 && j < len2 && str1.charAt(i++) == str2.charAt(j++)) {
len++;
str += str2.charAt(j - 1);
}
if (len > maxLen) {
maxLen = len;
本内容试读结束,登录后可阅读更多
下载后可阅读完整内容,剩余1页未读,立即下载