float,
значит надо переделать алгоритм, чтобы итераций было не больше чем символов в строке. Посмотрите мой пост выше. |
with-love-from-siberia, приведите код, а я придумаю контрпример (не забудьте протестировать для начала на уже имеющихся примерах).
|
String.prototype.at = function(str) { var tl = this.length, sl = str.length; for(var i=j=0; i<tl; i++) { if(this[i] == str[j] && sl == ++j) return ++i-j; } return -1; } var s1 = 'aababababaO_o', l1 = 'ababaO', l2 = 'abac', l3 = 'aa', l4 = 'O_o'; alert([ [s1.at(l1), s1.indexOf(l1)], [s1.at(l2), s1.indexOf(l2)], [s1.at(l3), s1.indexOf(l3)], [s1.at(l4), s1.indexOf(l4)] ].join('\n') ); :) |
String.prototype.at = function(str) { var tl = this.length, sl = str.length; for(var i=j=0; i<tl; i++) { if(this[i] == str[j] && sl == ++j) return ++i-j; } return -1; } var s1 = 'aababababaO_o', l1 = 'aabaO', l2 = 'abac', l3 = 'aa', l4 = 'O_o'; alert([ [s1.at(l1), s1.indexOf(l1)], [s1.at(l2), s1.indexOf(l2)], [s1.at(l3), s1.indexOf(l3)], [s1.at(l4), s1.indexOf(l4)] ].join('\n') ); :) |
String.prototype.at = function(str) { var tl = this.length, sl = str.length; for(var i=0, j=0; i<tl; i++) { if(this[i] == str[j] && sl == ++j) return ++i-j; } return -1; } var s1 = 'ababc', l1 = 'abac'; alert([ [s1.at(l1), s1.indexOf(l1)] ].join('\n') ); |
String.prototype.at = function(str) { var tl = this.length, sl = str.length; for(var i=j=0; i<tl; i++) { if(this[i] == str[j] && sl == ++j && sl != i) return ++i-j; } return -1; } var s1 = 'ababc', l1 = 'abac', l2 = 'bc', l3 = 'aa', l4 = 'O_o'; alert([ [s1.at(l1), s1.indexOf(l1)], [s1.at(l2), s1.indexOf(l2)], [s1.at(l3), s1.indexOf(l3)], [s1.at(l4), s1.indexOf(l4)] ].join('\n')); :D |
String.prototype.at = function(str) { var tl = this.length, sl = str.length; for(var i=j=0; i<tl; i++) { if(this[i] == str[j] && sl == ++j && sl != i) return ++i-j; } return -1; } var s1 = 'aabac', l1 = 'abac'; alert([ [s1.at(l1), s1.indexOf(l1)] ].join('\n')); |
ааай. Ребят. Сложность в том, что при достаточной длине строки, на определённом этапе создаются перекрывания. Их число подстрока-1(так вроде), т.е. функция зависит от параметров.
monolithed else блок там не для красоты стоит |
Цитата:
Ну может быть завтра напрягусь (-: |
Цитата:
|
Часовой пояс GMT +3, время: 10:29. |