Tôi cần tìm thuật toán lập trình động để giải quyết vấn đề này. Tôi đã thử nhưng không thể tìm ra. Đây là vấn đề:Chia chuỗi thành chuỗi các từ hợp lệ sử dụng Lập trình động
Bạn được cung cấp một chuỗi ký tự n [1 ... n], mà bạn cho là tài liệu văn bản bị hỏng trong đó tất cả các dấu câu đều biến mất (để trông giống như "itwasthebestoftimes" ... "). Bạn muốn xây dựng lại tài liệu bằng cách sử dụng từ điển, có sẵn dưới dạng một hàm boolean dict (*) sao cho, với bất kỳ chuỗi w, dict (w) có giá trị 1 nếu w là một từ hợp lệ và có giá trị 0 nếu không thì.
- Cung cấp thuật toán lập trình động xác định chuỗi có thể được tái tạo dưới dạng chuỗi các từ hợp lệ hay không. Thời gian chạy tối đa phải là O (n^2), giả sử rằng mỗi cuộc gọi đến dict mất thời gian đơn vị.
- Trong trường hợp chuỗi ký tự hợp lệ, hãy đặt thuật toán của bạn ra chuỗi thứ tự tương ứng.
Vâng, đó là bài tập từ sách giáo khoa. Tôi không có giải pháp cho các bài tập, và tôi không chắc chắn làm thế nào để giải quyết vấn đề này. – Pet
Điều đầu tiên đến với tâm trí - sự mơ hồ. Giả sử từ điển của bạn có từ 'was', 'her' và 'washer'. Bạn chỉ có thể thích những từ ngắn nhất. Đợi đã, không ... bạn có thể cắt một phần từ từ và hiển thị chuỗi không hợp lệ - như bắt 'tự động' từ 'tự động'. – alxx
Bạn có cố tìm kiếm câu trả lời trước không? Đã có một vài câu hỏi về vấn đề này trên SO - http://stackoverflow.com/questions/4755157/split-string-into-words, http://stackoverflow.com/questions/3553958/tokenize-valid-words-from -a-long-string, http://stackoverflow.com/questions/3466972/how-to-split-a-string-into-words-ex-stringintowords-string-into-words. Một số người trong số họ đề cập đến các giải pháp lập trình động. – hoha