Перестановочные строки
Это тоже своего рода эволюция строки, только не от случайной к заданной, а от заданной к целевой, получающейся из исходной перестановками символов.
Алгоритм простейший - каждый символ сравнивается с каждым, отличным от него и выбирается перестановка, уменьшающая расстояние Левенштейна между строками (точней, не само расстояние, а "модификацию", учитывающую только перестановки символов, см. функцию 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) { //Строки не совпадают }
сосия надерия
насоси ирядея
01.05.2019, 07:40 [1510 просмотров]