Niedawno zostałem poproszony w pytaniu o wywiad, aby odwrócić ciąg w perlu. Napisałem kod i chcieli, żebym podał kilka przykładowych ciągów, żeby go przetestować. Podałem im przykłady, takie jak ciąg znaków z kilkoma znakami, wiele znaków, nieprawidłowe znaki itp. Ale oni zapytali także, jaki jest najdłuższy ciąg, który przetestuję. Nie byłem pewien, co powiedzieć. Stąd to pytanie. Jaki jest najdłuższy ciąg, który mogę przetestować w kodzie perl? Od czego to zależy ? Pamięć na maszynie? Czy istnieje ograniczenie z punktu widzenia perla?Jaki jest najdłuższy ciąg jaki mogę mieć?
Odpowiedz
Szukałem, czy znajdę oficjalną dokumentację na najdłuższym ciągu. Znalazłem jeden na http://perltutorial.org mówiący o Struny:
Perl definiuje ciąg jako ciąg znaków. Najkrótszy ciąg nie zawiera znaku ani łańcucha pustego. Najdłuższy ciąg może zawierać nieograniczoną liczbę znaków, która ogranicza się tylko do dostępnej pamięci komputera.
Nie wiem, czy to jest oficjalny dla ciebie za mało. Byłoby miło zobaczyć coś w FAQ lub Perldoc.
Przy okazji, aby oficjalnie odwrócić ciąg w Perl:
my $rev_string = reverse $string;
Jest w Perl FAQ # 4, który ma kilka rzeczy w nim obsługi łańcucha. Pytanie o odwrócenie ciągu znaków jest starszym pytaniem do wywiadu, aby sprawdzić, czy ktoś zna ich tajemne rzeczy z Perla. Oczywiście prawie wszyscy wiedzą, że reverse
odwróci tablicę, ale czy wiedzą również, że odwróci ciąg znaków? Noobies opracuje jakiś skomplikowany algorytm, a osoba przeprowadzająca wywiad będzie miała powody, by czuć się zadowolonym z siebie i nie zatrudniać tej osoby.
Osobiście, gdybym przeprowadzał z kimś rozmowę, zadałem to pytanie, a ktoś wymyślił na miejscu elegancki algorytm i pokazał mi, jak to będzie działać z krótkimi, długimi i nieważnymi postaciami. Zatrudniłbym ich. Zawsze możesz nauczyć się nowych głupich sztuczek Perla, ale szybkie myślenie na stopę jest czymś trudnym do znalezienia.
Nauczyłem się sztuczki z odwrotną struną dawno temu, gdy ktoś zadał mi to samo pytanie w wywiadzie. Sprawdziłem to i znalazłem to w FAQ i zrozumiałem, że zrobiłem to źle. Używam Perla od prawie 20 lat i nie mogę sobie przypomnieć czasu, w którym kiedykolwiek musiałem odwrócić ciąg Perla.
perltutorial.org jest [niezalecane] (http://perl-tutorial.org/rejected/), wszystkie informacje są wątpliwe [przez stowarzyszenie] (http://enwp.org/Association_fallacy). Odpowiedzi na te pytania powinny zawierać autorytatywne zasoby wysokiej jakości. – daxim
Procesy często mają dostęp tylko do części pamięci komputera, więc możesz ograniczyć się do znacznie mniejszej niż pamięć komputera. – ikegami
@daxim - Pamiętam, że czytałem coś podobnego w Księdze Wielbłądów, ale nie mogłem go znaleźć. Znalazłem podobne stwierdzenie do powyższego w Perlmonk, ale nie ma tam też odniesienia. Być może właściwą odpowiedzią powinien być _Tylko dłuższy niż prawdopodobnie będziesz potrzebował, więc nie martw się tym._. –
Zasadniczo zależy to od ilości pamięci dostępnej dla twojego programu (czyli Perla). Jeśli masz maszynę 32-bitową, to gdzieś poniżej 4 GiB. Jeśli masz maszynę 64-bitową, limit jest prawdopodobnie większy i zależy od dostępnej pamięci wirtualnej. Nie ma ustalonego ograniczenia.
ok. W jaki sposób można utworzyć długi ciąg lub innymi słowy, stworzyć najdłuższy ciąg możliwy do przeprowadzenia testu? Nie jestem pewien, czy istnieje potrzeba posiadania długiego łańcucha jako jednego z przypadków testowych. – user238021
@ user238021: to * spowoduje * zawieszenie komputera. Otrzymałeś ostrzeżenie: perl -e 'print skalar reverse a .. "z" x999' – jm666
- 1. Jaki jest najdłuższy możliwy adres e-mail?
- 2. Jaki jest najdłuższy wyrażenia regularne, jakie widziałeś:
- 3. Najdłuższy ciąg w numpy array_obiektu
- 4. PHP najkrótszy/najdłuższy ciąg w tablicy
- 5. jak znaleźć najdłuższy ciąg w ciągu znaków [] używając LINQ
- 6. Javascript: znaleźć najdłuższy wyraz w ciąg
- 7. Jeśli ciąg NSString zContentsOfFile jest nieaktualny, jaki jest jego zamiennik?
- 8. Jaki jest cel XNoImplicitPrelude?
- 9. Jaki jest sens os.error?
- 10. Jaki jest odpowiednik „OnBackKeyPress”
- 11. Jaki jest cel IApplicationBuilder.New()
- 12. Jaki jest sens _MERGE_PROXYSTUB?
- 13. Jaki jest ciąg połączenia dla localdb dla wersji 11
- 14. Jaki jest poprawny sposób na ucieczkę ciąg dla łącza mailto
- 15. W jaki sposób implementowany jest ciąg std :: string?
- 16. w jaki sposób delphi "ciąg" literałów może mieć więcej niż 255?
- 17. Jaki jest obiektowy odpowiednik _.pluck
- 18. W jaki sposób Python robi ciąg magii?
- 19. Jaki jest cel preompompiledApp.config?
- 20. Jaki jest cel używania?
- 21. Jaki jest cel Rake?
- 22. Jaki jest cel JNDI
- 23. Jaki jest cel Mage_Core_Block_Template_Facade
- 24. Jaki jest typ dolny?
- 25. Jaki jest cel "() =>"
- 26. Jaki jest cel curdoc()?
- 27. Jaki jest cel aclocal?
- 28. Jaki jest cel vertexAttribPointer?
- 29. Jaki jest cel IAsyncStateMachine.SetStateMachine?
- 30. Jaki jest cel Ember.Container
Dostałeś pracę? – simbabque