|
20.08.2012, 12:43
|
|
Аспирант
|
|
Регистрация: 05.08.2012
Сообщений: 58
|
|
Deff, спасибо вам! отличная пища для ума!
|
|
20.08.2012, 15:00
|
|
junior
|
|
Регистрация: 29.11.2011
Сообщений: 3,924
|
|
Сообщение от wawandas
|
как реализовать алгоритм который будет проверять является ли строка ротацией другой строки, пример: 'panama' являеться ротацией 'amapan'
|
еще раз прочитал задачу. Могу ошибаться, но в вашем случае будет достаточно: собрать хеш букв одной строки (какая именно буква + ее количество) и сверить его с другой.
__________________
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук
Последний раз редактировалось nerv_, 20.08.2012 в 15:03.
|
|
20.08.2012, 15:44
|
|
junior
|
|
Регистрация: 29.11.2011
Сообщений: 3,924
|
|
еще вариант
var text = '12345';
var i = text.length;
var len = i - 1;
var line = text;
while( i-- ) {
line = line.slice( -1 ) + line.slice( 0, len );
alert( line ) ;
}
__________________
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук
|
|
20.08.2012, 15:49
|
без статуса
|
|
Регистрация: 25.05.2012
Сообщений: 8,219
|
|
nerv_,
Там я продинамил второй Вариант - кады сдвиг против часовой
|
|
20.08.2012, 15:59
|
|
Аспирант
|
|
Регистрация: 05.08.2012
Сообщений: 58
|
|
Deff,
nerv_,
громадное спасибище за внимание и старания!
|
|
20.08.2012, 16:28
|
Профессор
|
|
Регистрация: 31.05.2012
Сообщений: 396
|
|
Сообщение от wawandas
|
как реализовать алгоритм который будет проверять является ли строка ротацией другой строки, пример: 'panama' являеться ротацией 'amapan'
|
Ещё такое решение:
function TstСircular_movement(s1, s2) {
if (s1.length!=s2.length)
return -1;
else return (s1+s1).indexOf(s2);
}
//тесты
alert(TstСircular_movement("panama", "amapan"));
alert(TstСircular_movement("panama", "panama"));
alert(TstСircular_movement("panama", "amapana"));
|
|
20.08.2012, 16:36
|
без статуса
|
|
Регистрация: 25.05.2012
Сообщений: 8,219
|
|
oneguy, +
Классная идея!!!
Последний раз редактировалось Deff, 20.08.2012 в 16:44.
|
|
20.08.2012, 16:43
|
Профессор
|
|
Регистрация: 31.05.2012
Сообщений: 396
|
|
Deff,
спасибо!
Учитывать отрицательные сдвиги не имеет смысла, так как они эквивалентны положительным сдвигам величиной n-i, где n - длина строки, а i - величина отрицательного сдвига.
|
|
20.08.2012, 16:45
|
|
Аспирант
|
|
Регистрация: 05.08.2012
Сообщений: 58
|
|
oneguy,
спасибо!
удивляюсь тому, сколько может быть решений у одной задачи
|
|
20.08.2012, 16:45
|
без статуса
|
|
Регистрация: 25.05.2012
Сообщений: 8,219
|
|
Сообщение от oneguy
|
Учитывать отрицательные сдвиги не имеет
|
oneguy,
я сообразил (- затёр
Последний раз редактировалось Deff, 20.08.2012 в 16:47.
|
|
|
|