БлогNot. Перестановочные строки

Перестановочные строки

Это тоже своего рода эволюция строки, только не от случайной к заданной, а от заданной к целевой, получающейся из исходной перестановками символов.

Алгоритм простейший - каждый символ сравнивается с каждым, отличным от него и выбирается перестановка, уменьшающая расстояние Левенштейна между строками (точней, не само расстояние, а "модификацию", учитывающую только перестановки символов, см. функцию levenshtein в исходнике страницы скрипта и комментарий к ней).

Чтобы процесс был наглядным, перестановки выполняются с таймаутом в полсекунды.

В общем, если вы не знали, "Снегурочка" на самом деле, увы, вполне может оказаться "Огнесручка" или даже неполиткорректная "Негросучка", а во что превратится традиционное пожелание "С новым годом!" - смотрите сами. Интерфейс к этому, думаю, при необходимости легко приделать.

 Выполнить скрипт в текущем окне/вкладке (3 Кб)

Кодировка файла со скриптом - UTF-8 (Юникод), только так метод Javascript toUpperCase() корректно обработает кириллицу.

Как на Javascript сравнить, совпадают ли 2 строки по наборам символов?

А вот как:

  var s1 = str1.toUpperCase().split('').sort().join('');
  var s2 = str2.toUpperCase().split('').sort().join('');
  if (s1 != s2) {
   //Строки не совпадают
  }

сосия надерия
сосия надерия
насоси ирядея
насоси ирядея

 Animated GIF Maker

01.05.2019, 07:40 [1472 просмотра]


теги: javascript алгоритм эволюция

К этой статье пока нет комментариев, Ваш будет первым