Показать сообщение отдельно
  #22 (permalink)  
Старый 20.02.2011, 14:56
Аватар для B@rmaley.e><e
⊞ Развернуть
Отправить личное сообщение для B@rmaley.e><e Посмотреть профиль Найти все сообщения от B@rmaley.e><e
 
Регистрация: 11.01.2010
Сообщений: 1,810

рони,
String.prototype.index = function (c) {
    for (var a = -1, d = this.length, b = 0; b < d; b++) {
        if(c.length > d) return a;
        a++;
        a = c.charAt(a) === this.charAt(b) ? a : c.charAt(0) === this.charAt(b) ? 0 : -1;
        if (a == c.length - 1) return b - c.length + 1
    }
    return a
};
var s1 = 'aababaO_o',
     l1 = 'abaO', l2 = 'abac', l3 = 'aa', l4 = 'O_o';
alert( [
 [s1.index(l1), s1.indexOf(l1)]
].join('\n') )


Matre, вполне нормальный. Причем точно такие же результаты будут у других пользователей.
А вот алгоритм у Вас кривой.

Принимая во внимание то, что все известные алгоритмы поиска подстроки требуют либо предварительной обработки данных, либо работают дольше, чем за O(n), маловероятно, что существует алгоритм, позволяющий "с места", без подготовки найти заданную подстроку в строке за один просмотр исходной строки.
Ответить с цитированием