Пишем полиндром за десять минут

14 апреля, 2017
1 минута чтения

HR вновь нашли меня и предложили выполнить задание для Yandex. Я не отказался. Задание было сделать полиндром ровно за 10 минут.

Примеры полиндромов: ‘Казак’, ‘А роза упала на лапу Азора’, ‘Do geese see God?’

Код приложения

function isPalindrome(s)  {
  const slovar = (str) => {
    str = str.replace(/\s/g, '');
    str = str.toLowerCase();
  
    return str;
  }
  
  const words = slovar(s);// арозаупаланалапуазора
       
  let start = 0;
  let end = words.length - 1;
 
  for (;;) { 
    const startWord = words[start];
    const endWord = words[end]

    if (startWord !== endWord) 
      return false;
  
    ++start;
    --end;
         
    if (end === 0) 
      return true;
  }     
}

Пример

var s = 'А роза упала на лапу Азора';
isPalindrome(s); // Выведет true

Чуть позже, пользователь на гитхабе под ником noonon предложил свой вариант «Лаконичнее, но кажется медленнее».

function isPalindrome(str) {
    str = str.replace(/\s/g, '');
    str = str.toLowerCase();
    
    const strLikeArray = Array.from(str);
    const reverseStr = (strLikeArray.reverse()).join('');

    return str === reverseStr;
}

Пример

https://codepen.io/qertis/pen/XWgdRdz
Полиндром

Денис Сергеевич Басковский

Философ, изобретатель и поэт.

Добавить комментарий Отменить ответ

polymer canvas
Предыдущая статья

Polymer 2 Shadow Canvas

chrome freeze
Следующая статья

Как заставить браузер зависнуть?

Exit mobile version