Tôi ngây thơ tưởng tượng rằng tôi có thể xây dựng một hậu tố mà tôi giữ số lượt truy cập cho mỗi nút và sau đó các nút sâu nhất có số lượng lớn hơn một là tập hợp kết quả cho.tìm kiếm các bản lặp dài lặp đi lặp lại trong một chuỗi lớn
Tôi có một chuỗi rất dài (hàng trăm megabyte). Tôi có khoảng 1 GB RAM.
Đây là lý do tại sao việc xây dựng một hậu tố trie với dữ liệu đếm là quá không hiệu quả khôn ngoan để làm việc cho tôi. Để báo giá Wikipedia's Suffix tree:
lưu trữ cây hậu tố của chuỗi thường yêu cầu nhiều không gian hơn lưu trữ chuỗi.
Lượng thông tin lớn trong mỗi cạnh và nút làm cho cây hậu tố rất tốn kém, tiêu thụ khoảng 10 đến 20 lần kích thước bộ nhớ của văn bản nguồn trong việc triển khai tốt. Mảng hậu tố làm giảm yêu cầu này thành hệ số bốn, và các nhà nghiên cứu tiếp tục tìm các cấu trúc lập chỉ mục nhỏ hơn.
Và đó là nhận xét của wikipedia trên cây chứ không phải trie.
Tôi làm cách nào để tìm chuỗi được lặp lại lâu dài trong một lượng lớn dữ liệu và trong một khoảng thời gian hợp lý (ví dụ: dưới một giờ trên máy tính để bàn hiện đại)?
(Một số liên kết wikipedia để tránh người đăng chúng là 'câu trả lời': Algorithms on strings và đặc biệt là Longest repeated substring problem ;-))
FWIW, đây là một thực hiện của một vấn đề có liên quan tôi đã viết cho SpamAssassin, có thể hữu ích: http://taint.org/2007/03/05/ 134447a.html –