Câu hỏi của tôi có liên quan đến câu hỏi trước đâyTìm ký tự không lặp lại đầu tiên của một chuỗi trong O (n) bằng cách sử dụng một mảng boolean?
Trong một cuộc phỏng vấn, tôi được yêu cầu viết hàm để xác định ký tự duy nhất đầu tiên trong một chuỗi trong thời gian O (n) sử dụng làm khoảng trống bổ sung chỉ một mảng boolean có độ dài n. Tức là, tìm chữ cái đầu tiên không lặp lại trong một chuỗi chỉ sử dụng độ phức tạp O (n) và một mảng bool có độ dài n. Có thể một số đề nghị làm thế nào để giải quyết nó với mảng bool?
Chúng ta có biết gì về kích thước của bảng chữ cái mà các chuỗi ký tự không? – phs
Chúng ta có được phép thay đổi chuỗi đầu vào không? – phs
Tôi có cảm giác ruột không thể sử dụng các ràng buộc được cung cấp. Nếu được giải quyết nó có thể là [thuật toán băm hoàn hảo tối thiểu] tốt nhất (http://en.wikipedia.org/wiki/Perfect_hash_function#Minimal_perfect_hash_function) được biết đến với con người. – paislee