Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.io.IOException;
- import java.util.Scanner;
- public class Main {
- public static void main(String[] args) throws IOException {
- Scanner input = new Scanner(System.in);
- int k;
- while (true) {
- k = input.nextInt();
- input.nextLine();
- if (k == 0) break;
- String palavra1 = input.nextLine();
- String palavra2 = input.nextLine();
- System.out.println(dnaSequence(palavra1, palavra2, k));
- }
- }
- public static int dnaSequence(String palavra1, String palavra2, int k) {
- int len1 = palavra1.length();
- int len2 = palavra2.length();
- int[][] matriz = new int[len1+1][len2+1];
- for (int i = 1; i <= len1; i++) {
- for (int j = 1; j <= len2; j++) {
- matriz[i][j] = Math.max(matriz[i-1][j], matriz[i][j-1]);
- int n = 0;
- while (i - 1 - n >= 0 && j - 1 - n >= 0 && palavra1.charAt(i - 1 - n) == palavra2.charAt(j - 1 - n)) {
- n++;
- }
- if (n >= k) {
- for (int l = k; l <= n; l++) {
- matriz[i][j] = Math.max(matriz[i][j], matriz[i-l][j-l] + l);
- }
- }
- }
- }
- return matriz[len1][len2];
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement