Dãy con chung dài nhất
Bài học 6 trên 15 trong khóa học Nhập môn quy hoạch động của Coddy.
Dãy con chung dài nhất (Longest Common Subsequence, LCS) là một bài toán kinh điển trong khoa học máy tính, yêu cầu tìm dãy con dài nhất xuất hiện trong hai dãy. Dãy con là một dãy có thể tạo ra từ một dãy khác bằng cách xóa một số hoặc không xóa phần tử nào mà vẫn giữ nguyên thứ tự của các phần tử còn lại.
Ví dụ, xét hai dãy sau:
S1 = "AGGTAB"
S2 = "GXTXAYB"
LCS của S1 và S2 là "GTAB", có độ dài bằng 4.
Có một số cách giải bài toán LCS, trong đó cách phổ biến nhất là quy hoạch động.
Thử thách
Trung bìnhViết một hàm (function) nhận hai chuỗi làm đầu vào và trả về độ dài của chuỗi con chung dài nhất.
Lưu ý: Đây (cùng với các thuật toán sắp học trong khóa học này) được xem là một thuật toán nâng cao. Người mới học lập trình có thể khó tự nghĩ ra lời giải DP hiệu quả. Đừng ngần ngại dùng các gợi ý hoặc nút 'Ask AI'!
Tự làm thử
def longest_common_subsequence(str1, str2):
# Viết code ở đâyTất cả bài học trong Nhập môn quy hoạch động
1Giới thiệu về quy hoạch động
Quy hoạch động là gì?Vì sao quy hoạch động quan trọng?Ứng dụng trong nhiều lĩnh vực3Thuật toán quy hoạch động
Dãy con chung dài nhấtBài toán cái ba lôBài toán đổi tiềnKhoảng cách chỉnh sửaTự luyện tập: Trình biên dịch Python online