Moje pytanie związane jest z tym wcześniejszym pytaniuOdnajdywanie pierwszego nie powtarzanego znaku ciągu w O (n) przy użyciu tablicy boolowskiej?
W jednym z moich wywiadów poproszono mnie o napisanie funkcji do określenia pierwszego unikalnego znaku w ciągu znaków w czasie O (n) użycie jako dodatkowej przestrzeni tylko tablicy boolowskiej o długości n. Oznacza to, że znajdź pierwszą nie powtarzającą się literę w łańcuchu, używając tylko złożoności O (n) i tablicy bool o długości n. Czy niektórzy mogą podpowiedzieć, jak rozwiązać ten problem za pomocą tablicy bool?
Czy wiemy cokolwiek na temat wielkości alfabetu, w którym znajdują się łańcuchy? – phs
Czy wolno nam mutować ciąg wejściowy? – phs
Mam przeczucie, że nie jest to możliwe przy użyciu przewidzianych ograniczeń. Jeśli zostanie rozwiązany, może to być najlepszy [minimalny idealny algorytm mieszający] (http://en.wikipedia.org/wiki/Perfect_hash_function#Minimal_perfect_hash_function) znany człowiekowi. – paislee