Palindrom
Napisz isPalindrome(text). Najpierw ustal reguły: czy ignorujemy wielkość liter, spacje i znaki przestankowe? W tym zadaniu porównujemy wszystkie znaki, pomijając tylko wielkość liter.
Zgodnie z nietypowym kontraktem zadania zwracamy true albo 0; w zwykłym API lepszy byłby konsekwentny boolean. Porównuj punkty kodowe, nie jednostki UTF-16 — emoji też są znakami.
Przećwiczysz
- Ustalić reguły porównania
- Porównać znaki od obu końców
- Obsłużyć znaki spoza BMP (emoji)
Przykłady
- isPalindrome('Kajak')→ true
- isPalindrome('React')→ 0
Testy (4)
Testy napisane na podstawie karty: przykłady Kajak/React, porównanie wszystkich znaków bez wielkości liter i tablica punktów kodowych.
przykłady z zadania
assert.equal(isPalindrome('Kajak'), true);
assert.equal(isPalindrome('React'), 0);pomija tylko wielkość liter
assert.equal(isPalindrome('AbBa'), true);
assert.equal(isPalindrome('kajak '), 0, 'spacja jest porównywana jak każdy znak');pusty tekst i jeden znak
assert.equal(isPalindrome(''), true);
assert.equal(isPalindrome('x'), true);porównuje punkty kodowe (emoji)
assert.equal(isPalindrome('a😀a'), true);
assert.equal(isPalindrome('😀b'), 0);Powiązane pytania
Źródło: Full Stack / JS — karta z zadaniem — Polecenie i rozwiązanie wzorcowe pochodzą z karty; testy napisano na podstawie jej opisu.