Podciąg

0

Witam. Mam do napisania kod który w pliku wejściowym będzie miał podany dwa słowa napisane jedno pod drugim , a w pliku wyjściowym wypisze najdłuższy wspólny podciąg. Kod wypisuje długość, czyli liczbę , nie wiem za bardzo jak zrobić żeby wypisał mi litery.

public class Zzad {

public static void main(String[] args)throws FileNotFoundException {
Scanner sc = new Scanner(new File("In.txt"));
String A = sc.nextLine();
String B = sc.nextLine();
int C[][]=new int[A.length()][B.length()];
        for (int i=0;i<A.length();i++)
            for (int j=0;j<B.length();j++)
                C[i][j]=0;
        for (int i=1;i<A.length();i++) 
            for (int j=1;j<B.length();j++) {
                if (A.charAt(i)==B.charAt(j)) C[i][j]=C[i-1][j-1]+1;
                else C[i][j]=Math.max(C[i-1][j],C[i][j-1]);
            }
PrintWriter pw = new PrintWriter(new File("Outxt"));
pw.println("" + C[A.length()-1][B.length()-1]);
pw.close();
}
}
0

Możesz zrobić coś takiego:

Wczytujesz string do zmiennej A
Drugi wczytujesz do zmiennej B

Ustalasz który string jest krótszy i przypisujesz wartość do zmiennej length typu int

Otwierasz plik
Robisz pętle for i < length
	Sprawdzasz czy A[i] == B[i] Jeżeli tak:
		Wpisujesz znak A[i] do pliku
	W przeciwnym wypadku:
		Wychodzisz z pętli
(koniec pętli)
Zamykasz plik
0

A co ma program wypisać gdy trafi na słowa "tama" i "mata"?

1 użytkowników online, w tym zalogowanych: 0, gości: 1