var f,g:text;s1,s2,s:string;i,j:integer;beginassign(f,'');reset(f);assign(g,'');rewrite(g);while not eoln(f) dobeginreadln(f,s1);readln(f,s2);i:=1;repeatif length(s2)>length(s1) thenbegins:=s2;s2:=s1;s1:=s;end;if s1[i]<>s2[i] then insert(s1[i],s2,i);i:=i+1;until pos(s2,s1)<>0;writeln(g,s1);end;close(f);close(g);end.Bạn điền tên file inp,out vào là đc! Nếu có thể thêm thì xét trường hợp 2 xâu chả có gì liên quan(vd: abcg,def => abcgdef), vì text của cách mình không có chia cho trường hợp đó!
Bài toán quy hoạch động cổ điển: tham khảo Levenshtein distance
Sẵn cũng có 1 bài về xâu mà làm chưa ra, đăng lên cùng làm :
Một chuỗi được gọi là đối xứng (palindrome) nếu như khi đọc chuỗi này từ phải sang trái cũng thu được chuỗi ban đầu.
Yêu cầu: tìm một chuỗi con đối xứng dài nhất của một chuỗi s cho trước. Chuỗi con là chuỗi thu được khi xóa đi một số ký tự từ chuỗi ban đầu.
Dữ liệu vàoGồm một dòng duy nhất chứa chuỗi s, chỉ gồm những chữ cái in thường.
Kết qủaGồm một dòng duy nhất là một xâu con đối xứng dài nhất của xâu s. Nếu có nhiều kết quả, chỉ cần in ra một kết quả bất kỳ.
Giới hạnChuỗi s có độ dài không vượt quá 2000.
Ví dụDữ liệu mẫu
lmevxeyzl
Kết qủa
level
Bài toán quy hoạch động cổ điển: tham khảo LCS
P/S: là test chứ không phải text nhé.