美文网首页
Java求最大相同子串

Java求最大相同子串

作者: syncwt | 来源:发表于2016-06-19 01:32 被阅读86次

利用动态最大相同子串规划求

```

public class maxString {

public static void main(String[] args) {

// 保留空字符串是为了getLength()方法的完整性也可以不保留

// 但是在getLength()方法里面必须额外的初始化c[][]第一个行第一列

String[] x = { "", "A", "B", "C", "B", "D", "A", "B" };

String[] y = { "", "B", "D", "C", "A", "B", "A" };

int[][] b = getLength(x, y);

Display(b, x, x.length - 1, y.length - 1);

}

/**

* @param x

* @param y

* @return 返回一个记录决定搜索的方向的数组

*/

public static int[][] getLength(String[] x, String[] y) {

int[][] b = new int[x.length][y.length];

int[][] c = new int[x.length][y.length];

for (int i = 1; i < x.length; i++) {

for (int j = 1; j < y.length; j++) {

// 对应第一个性质

if (x[i] == y[j]) {

c[i][j] = c[i - 1][j - 1] + 1;

b[i][j] = 1;

}

// 对应第二或者第三个性质

else if (c[i - 1][j] >= c[i][j - 1]) {

c[i][j] = c[i - 1][j];

b[i][j] = 0;

}

// 对应第二或者第三个性质

else {

c[i][j] = c[i][j - 1];

b[i][j] = -1;

}

}

}

return b;

}

// 回溯的基本实现,采取递归的方式

public static void Display(int[][] b, String[] x, int i, int j) {

if (i == 0 || j == 0)

return;

if (b[i][j] == 1) {

Display(b, x, i - 1, j - 1);

System.out.print(x[i] + " ");

} else if (b[i][j] == 0) {

Display(b, x, i - 1, j);

} else if (b[i][j] == -1) {

Display(b, x, i, j - 1);

}

}

}

```

相关文章

  • Java求最大相同子串

    利用动态最大相同子串规划求 ``` public class maxString { public static ...

  • 2017年Java方向C组第六题

    标题:最大公共子串 最大公共子串就是求两个串的所有子串中能够匹配上的最大长度是多少。 比如:"abcdkkk" 和...

  • 第八届蓝桥杯 最大公共子串 Java A组

    标题:最大公共子串 最大公共子串长度问题就是:求两个串的所有子串中能够匹配上的最大长度是多少。 比如:"abcdk...

  • 2019-01-15第八届蓝桥杯javaB组 最大公共子串

    标题:最大公共子串 最大公共子串长度问题就是:求两个串的所有子串中能够匹配上的最大长度是多少。 比如:"abcdk...

  • 最长不重复问题

    题目:求最长无重复子串从一个字符串中找到一个连续子串,该子串中任何两个字符不能相同,求子串的最大长度并输出一条最长...

  • Longest Substring Without Repeat

    题目:求最长无重复子串从一个字符串中找到一个连续子串,该子串中任何两个字符不能相同,求子串的最大长度并输出一条最长...

  • 面试题2

    四、数据结构和算法 1、求一串数字序列中的连续子串最大和,比如arr=1 -2 3 -1 2,连续子串最大和就是3...

  • 📚115. Distinct Subsequences

    "求S有多少个不同的子串与T相同"count the number of distinct subsequence...

  • 字符串算法

    求一个字符串的前缀与另一个字符串的后缀的最大相同子串 一个关于字符串前后缀的神奇数组:next 数组 Leetco...

  • 常用算法

    求最大公约数 判断字符串是否为回文串 判断数字是否为质数 判断数组中是否存在相同元素 求阶乘 二进制中1的个数

网友评论

      本文标题:Java求最大相同子串

      本文链接:https://www.haomeiwen.com/subject/qvdbdttx.html