Wpis z mikrobloga

We wpisie @asdasty pojawiło się przykładowe pytanie z rozmowy rekrutacyjnej z front-endowcem.

-Determine if a given string is a palindrome.


Proste, prawda?

No to chętnie poprosiłbym funkcję w JavaScript, która sprawdza, czy zadany string jest palindromem (8pkt.). Wytłumaczenie, dlaczego nie jest to trywialne, wraz z podaniem przykładowego kłopotliwego stringa, jest za 2 pkt.

#zagadkiprogramistyczne #javascript

Ranking:

- Marmite, 1pkt.
  • 34
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@Ginden: czy jesteś pewien, że to zachowanie specyficzne dla JavaScriptu? C# nie pozwoli Ci przypisać np. '\uD83D\uDC04' (symbol krówki) do typu Char - jako, że ten znak rozpoznany jest jako string:

Console.WriteLine("".Length); // 2
  • Odpowiedz
@torm: (#) Interesujące. Mnie zawsze mówiono, że to efekt tego, że JavaScript przechowuje znaki na 2 bajtach wewnętrznie i znaki dalsze muszą być zapisywane jako dwa, co jest ładnie łączone.
  • Odpowiedz
@Ginden: no to zależy - afaik w Unicode jest tak (a napewno w UTF-8), że to co jest w tabeli ASCII jest zapisane na 1 bajcie, wszystko spoza - nawet do 4 - i to nie jest coś niezwykłego.
  • Odpowiedz
@Ginden: :-) ok, muszę na spokojnie przeczytać ten wpis na blogu, który podrzuciłeś - tak czy inaczej w C# odwrócony palindrom z unicodem też nie będzie identyczny z pierwotnym stringiem
  • Odpowiedz
@Ginden: No to przecież mówiłem, że to będzie spowodowane znakami typu Zero-width_non-joiner one wszystkie coś tam robią, a tylko problem jest z nimi. Ja bym leciał pętlą operował na charCodeAt() i wtedy ładnie widać co dziwnego tam mamy i można wszystko ładnie obsłużyć :) To tak w teorii, bo nie chce mi się teraz tego pisać ;p
  • Odpowiedz