Xâu con chung dài nhất

Xem dạng PDF

Gửi bài giải


Điểm: 0,06 (OI)
Giới hạn thời gian: 1.0s
Giới hạn bộ nhớ: 512M
Input: stdin
Output: stdout

Dạng bài
Ngôn ngữ cho phép
C, C++, Go, Java, Kotlin, Pascal, PyPy, Python, Rust, Scratch

Xâu ký tự ~X~ được gọi là xâu con của xâu ký tự ~Y~ nếu ta có thể xoá đi một số ký tự trong xâu ~Y~ để được xâu ~X~.

Cho biết hai xâu ký tự ~A~ và ~B~ độ dài không quá ~2000~ ký tự, hãy tìm xâu ký tự ~C~ có độ dài lớn nhất và là con của cả ~A~ và ~B~.

Input

Dòng ~1~: chứa xâu ~A~

Dòng ~2~: chứa xâu ~B~

Output

Chỉ gồm một dòng ghi độ dài xâu ~C~ tìm được

Sample Input

abc1def2ghi3
abcdefghi123

Sample Output

10

Bình luận

Hãy đọc nội quy trước khi bình luận.



  • 2
    hoangquys  đã bình luận lúc 22, Tháng 11, 2025, 14:20

    Ý Tưởng Giải


    1. Đặt dp[n][m] n là độ dài string A, m là độ dài string B

    2. Trường hợp cơ sở: dp[i][0] = 0; dp[0][j] = 0

    3. Công thức truy hồi: Nếu a[i] == b[j] thì dp[i][j] = dp[i - 1][j - 1] + 1; else dp[i][j] = max(dp[i - 1][j], dp[i][j - 1]);

    4. Kết quả bài toán: dp[n][m]


  • 2
    hieuducle  đã bình luận lúc 17, Tháng 8, 2025, 14:03

    include<bits/stdc++.h>

    using namespace std; string x , y , dp[2005][2005]; string cmp (string a,string b) { while(a.size() < b.size()) a = '0' + a; while(b.size() < a.size()) b = '0' + b; if(a>b)return a; return b; } int main () { iosbase::syncwith_stdio(false); cin.tie(nullptr);

    cin >> x >> y;
    int m = x.size() , n = y.size();
    x = " " + x; 
    y = " " + y;
    dp[0][0] = '0';
    for(int i=1;i<=m;++i)
    {
        for(int j=1;j<=n;++j)
        {
            if(x[i] == y[j]) dp[i][j] = dp[i-1][j-1] + x[i];
            else dp[i][j] = cmp(dp[i-1][j] , dp[i][j-1]);
        }
    }
    string h = dp[m][n];
    while(h[0] == '0') h.erase(0,1);
    cout << h.size();
    return 0;
    

    }


  • -6
    zatarainbow  đã bình luận lúc 25, Tháng 11, 2024, 1:17

    Bình luận này đã bị ẩn vì có quá nhiều phản ứng tiêu cực. Nhấn để xem.


  • -9
    vdtue  đã bình luận lúc 20, Tháng 8, 2024, 14:29

    Bình luận này đã bị ẩn vì có quá nhiều phản ứng tiêu cực. Nhấn để xem.


  • -14
    frekraiko  đã bình luận lúc 17, Tháng 8, 2024, 2:09

    Bình luận này đã bị ẩn vì có quá nhiều phản ứng tiêu cực. Nhấn để xem.


  • 24
    CBNK30_dinhson  đã bình luận lúc 31, Tháng 7, 2023, 3:36

    ảo thật đấy, từ bé đến giờ


    • 16
      CBNK30_hoangphu  đã bình luận lúc 31, Tháng 7, 2023, 3:46

      các bạn chú ý ngôn từ của bản thân đi


      • -83
        htmanh  đã bình luận lúc 31, Tháng 7, 2023, 3:47

        Bình luận này đã bị ẩn vì có quá nhiều phản ứng tiêu cực. Nhấn để xem.


      • -36
        10tin_hangan  đã bình luận lúc 31, Tháng 7, 2023, 3:47

        Bình luận này đã bị ẩn vì có quá nhiều phản ứng tiêu cực. Nhấn để xem.


    • -55
      htmanh  đã bình luận lúc 31, Tháng 7, 2023, 3:46

      Bình luận này đã bị ẩn vì có quá nhiều phản ứng tiêu cực. Nhấn để xem.


    • -36
      10tin_hangan  đã bình luận lúc 31, Tháng 7, 2023, 3:42

      Bình luận này đã bị ẩn vì có quá nhiều phản ứng tiêu cực. Nhấn để xem.