Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //* WIKIPEDIA *//
- /*int main()
- {
- string A,B;
- cin >> A;
- cin >> B;
- int **C = new int*[A.length()+1];
- for (int i=0; i<A.length()+1; i++)
- {
- C[i] = new int[B.length()+1];
- C[i][0] = 0;
- C[i][1] = 0;
- }
- for (int i=0; i<B.length()+1; i++)
- {
- C[0][i] = 0;
- C[1][i] = 0;
- }
- for(int i=1; i<A.length()+1; i++)
- {
- for(int j=1; j<B.length()+1; j++)
- if (A[i-1] == B[j-1])
- {
- C[i][j] = C[i-1][j-1] + 1;
- }
- else
- {
- C[i][j] = max(C[i-1][j], C[i][j-1]);
- }
- }
- string R;
- int x = B.length();
- int y = A.length();
- while(x!=0 && y!=0)
- {
- if (C[y][x] == C[y-1][x])
- {
- --y;
- } else if (C[y][x] == C[y][x-1])
- {
- --x;
- } else
- {
- R.push_back(A[y-1]);
- --x; --y;
- }
- }
- reverse(R.begin(), R.end());
- cout << R << endl;
- /*
- // wypisywanie i zwalnianie
- cout << "A\\B\t";
- for(int i=0; i<B.length(); i++)
- {
- cout << B[i] << '\t';
- }
- cout << "\n\n";
- for(int i=1; i<A.length()+1; i++)
- {
- cout << A[i-1] << '\t';
- for(int j=1; j<B.length()+1; j++)
- {
- cout << C[i][j] << '\t';
- }
- delete [] C[i];
- cout << endl;
- }
- delete [] C;
- return 0;
- }*/
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement