Ну я так и подписан в твиттере, чтобы мониторить все интересное мне. Большинство твитов формата «пара слов http: ссылка» — причем ссылка может быть на жж, блог, новостную ленту, изображение, видео — на все, на что только можно сделать ссылку. Переходить по ссылке или нет — решать Вам. Мониторить такое кол-во разнородной информации — это займет все мое свобожное время, а так я просматриваю ленту твиттера за 5 мин и смотрю только интересное мне.
Знать все в реальном времени у вас точно не получится, это невообразимо большой объем информации. Но расскажу случай из моей жизни. Знакомая позвонила и говорит, что поезда метро разворачивают на определенной станции. Начинаю мониторить твиттер запросом. Через 5 мин начинают люди жаловаться на поезда и давку. Еще через пару минут — первое сообщение о возможном самоубийце. Итог — фонтанка.ру
меня устраивает. Сила его в том, что не будет проходить подобные строки:
F=http://habrahabr.ru/forum/google_chrome/38748/ false
F=http://habrahabr.ru/shop/item/37839 false
да, алгоритм специфический — тут главное — основная идея. На этапе вставок ".*" вы можете поэкспериментировать с регулярными выражениями.
согласен, сам подумываю над оптимизацией алгоритма. Для этого в некоторых случаях при постоении дерева если нет общих подстрок возвращаем не ".*", а "(S1L | S2L)". Я там написал, что возможна оптимизация.
Используем симметричный обход дерева:
1. в каждом узле есть некоторая строка.
2. Для корня получаем регексп — сперва получаем регексп из левого поддерева (пусть UL)
3. Дополняем его строкой в корне (пусть UL||U)
4. Дополняем его regexp'om из правого поддерева (UL || U || UR)
5. Регекспы из левого и правого поддеревьев строятся рекурсией.
Объединение SX и S3: для первого пункта берете S1=SX, S2=S3 и повторяете первый пункт в точности.
По моему желающих будет больше чем нужно тестеров. В таком случае лотерея — самый справедливый вариант.
ЗЫ Вспоминается фильм 2012, где все решили деньги, а не лотерея)
F=http://habrahabr.ru/forum/google_chrome/38748/ false
F=http://habrahabr.ru/shop/item/37839 false
да, алгоритм специфический — тут главное — основная идея. На этапе вставок ".*" вы можете поэкспериментировать с регулярными выражениями.
SIZE: 6
TIME: 0.0070 s
1. в каждом узле есть некоторая строка.
2. Для корня получаем регексп — сперва получаем регексп из левого поддерева (пусть UL)
3. Дополняем его строкой в корне (пусть UL||U)
4. Дополняем его regexp'om из правого поддерева (UL || U || UR)
5. Регекспы из левого и правого поддеревьев строятся рекурсией.
Объединение SX и S3: для первого пункта берете S1=SX, S2=S3 и повторяете первый пункт в точности.
пользоваться можно не только реализацией, но и алгоритмом ;)