[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: помогите с решением задачи
szw
есть массив из 100 000 строк. Необходимо написать алгоритм на php5, который позволит быстро выделить из массива несколько списков строк.
Каждый искомый список должен обладать таким свойством:
Все строки в данном списке должны иметь одиноковый набор символов, которые могут находиться только лишь в разном порядке. Например один из вариантов искомого списка

aabcddd, abcdadd, ddcdaba




Спустя 4 минуты, 6 секунд (3.03.2011 - 16:39) linker написал(а):
Цикл и регулярка. У самого-то какие мысли?

Спустя 9 минут, 29 секунд (3.03.2011 - 16:48) szw написал(а):
из массива сделать строку через explode. Затем к данной строке применить регулярку. Не получается написать паттерн

Спустя 9 минут, 59 секунд (3.03.2011 - 16:58) linker написал(а):
Думаем дальше.

Спустя 8 минут, 57 секунд (3.03.2011 - 17:07) Guest написал(а):
из массива сделать строку через explode.
весь массив пропустить через форич
для каждой итерации используем строку как паттерн. Если найдено более чем 1 запись - пишем в результат

Спустя 1 минута, 22 секунды (3.03.2011 - 17:09) szw написал(а):
из массива сделать строку через explode.
весь массив пропустить через форич
для каждой итерации используем строку для построения паттерна регулярки, который будет применен к большой строке. Если найдено более чем 1 запись - пишем в результат

Спустя 1 час, 54 минуты, 6 секунд (3.03.2011 - 19:03) Dron19 написал(а):
explode не делает из массива строку, это делает join, а тебе ясно сказали, причем сказали правильно, делаешь цикл и прогоняешь массив через регулярку, причем пристыковывая через запятую например, после цикла будет переменная с твоими данными, можешь ее expode`ом разбить и все

Спустя 3 часа, 13 минут, 41 секунда (3.03.2011 - 22:16) ApuktaChehov написал(а):
С регуляркой, все хорошо. Но если нужно найти не по определенному шаблону, а просто те строки у которых как-нибудь повторяются символы? Тут смотря что требуется.

Если уже имеется шаблон, т.е. известно сколько должно быть тех или иных букв, для ускорения работы можно и не пользоваться регялрками.

Ну, а если нужно определить сколько в массиве элементов с одинаковым кол-вом букв, то это сложнее, но реализуемо.

Спустя 7 минут, 18 секунд (3.03.2011 - 22:24) linker написал(а):
ApuktaChehov
Как вариант
$str = 'aabcddd' // строка 
$chars = 'abcd' // набор символов
echo !preg_match('/[^' . $chars . ']/', $str) ? 'Строка подходит' : 'Строка не подходит';
если я правильно понял условие задачи

Спустя 1 час, 28 минут, 26 секунд (3.03.2011 - 23:52) ApuktaChehov написал(а):
linker - это да. Я вот думаю как быть, если нужно отобразить похожие друг на друга строки. Хз, вообще. Ща автор придет и все растолкует.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.