Ví dụ có 1 bảng ánh xạ như thế này (mình dùng file ini):
[Set]
#key=value
abc=123
ab=19
xyzdd=789abe
defpo=456lkj
Và một chuỗi như thế này:
abcdefpoabcxyzdd
Chuyển đổi theo bảng trên thì được như thế này (nếu có chuỗi con như ab và abc thì chỉ lấy chuỗi dài nhất thôi):
123 456lkj 123 789abe
Mình cần chuyển đổi một lượng khá lớn dữ liệu như vậy dựa theo bảng ánh xạ kiểu như trên. Hiện mình chỉ nghĩ ra được một cấu trúc dữ liệu linked list như thế này (Code C#):
class CharNode
{
Dictionary<char, CharNote> next;
String value;
}
Mình sẽ đưa từng ký tự của phần key trong file ini vào biến next, đến ký tự cuối thì lưu phần value vào biến value để xây dựng data structure. Khi chuyển đổi thì đọc từng ký tự trong chuỗi đầu vào và tìm dần dần vào sâu trong biến next, khi không còn ký tự nào để vào sâu nữa thì biến value chính là chuỗi đích để chuyển đổi.
Nhờ mọi người góp ý là liệu có còn data structure và thuật toán nào tối ưu hơn không, c++ hay c# đều được

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?