10/10/2018, 10:47
Thuật toán so sánh hai chuỗi
Ví dụ có 2 chuỗi
Chuỗi 1:
Và chuỗi thứ 2: ( = chuỗi 1 + edited)
Cho em hỏi làm sao để ra dạng giống giống cái này:
Có nghĩa là so chuỗi thứ 2 với chuỗi thứ nhất để xét sự khác biệt của nó. Có ai biết cái này không
Chuỗi 1:
I am Snoob.
My name is Snoob.
[dấu bỏ]I am[dấu bỏ] My name is Snoob.
Bài liên quan
Nếu ai ko rõ câu hỏi thì vào www.textdiff.com là hiểu hà
- Duyệt theo n từ (= với tổng số từ của chuỗi đó), rồi n=n-1... các chuổi, đồng thời so sánh (2 vòng for).
- Trong mỗi trường hợp xét n, sau khi thoát vòng for ta lấy được các từ, cụm từ giống nhau với các chỉ số đã đc index. Tôi lấy lun vd của bạn:
str1 -> idx = 3
str2 -> idx = 4
- Tôi dùng hàm split để tách các thành phần trước từ có idx=3 ở str1 và idx=4 ở str2.
- Tôi chèn và màu mè hóa theo trình bày tùy ý với str1 làm chuẩn.
- Dùng for duyệt hết mảng 1, trong đó kết hợp dùng in_arra()y để so sánh phần tử hiện tại với mảng 2, nếu true (ứng với những từ cùng có ở cả 2 đoạn thì khoang màu), thêm <font color="...">phía trước nó và </font> phía sau nó, nếu false (ứng với những từ đoạn 1 có đoạn 2 không có thì gạch bỏ ) thì thêm tag format tương tự.
- Cuối cùng implode nó lại
Ví dụ: