Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
организовывать соревнования в разных 'весовых категориях'.Вы тут имеете ввиду разный объём входных данных?
Вы тут имеете ввиду разный объём входных данных?
var graph = {};
function addFilterToGraph(pattern, action) {
var g = graph;
for(var i = 0; i < pattern.length; i++) {
if( !g[ pattern[i] ] ) {
g[ pattern[i] ] = { action: [] };
}
g = g[ pattern[i] ];
}
g[ 'action' ].push( action );
}
'?' не корректно.is_match при встрече '*' начинает перебирать все комбинации суффиксов строки и паттерна и сопоставлять их, в структуру дерева же эта звёздочка не кодируется. У меня же звездочки закодированы в структуру дерева в виде реккурентных связей (так что это уже не дерево, а граф в общем виде) NFA. После детерминизации время прохода по DFA пропорционально длине строки и не зависит от наличия звездочек.
Разбор решения занявшего второе (пока что) место в конкурсе Hola по программированию почтовых фильтров на JavaScript