PHP Задача на выбор слов из базы по заданной комбинации букв

Alexandre

PHPПенсионер
что за слово можно составить из "Х*Л*О"
была у меня такая идея, создать сервис для помощи разгадки кроссвордов (больше для жены, она увлечена кроссвордами), только слов в базе оказалось мало.
в этом случае задача решается более прозаичнее: строится индекс по первой букве, второй, и тд...
ну и соответственно на слово Х*Л*О осуществляется поиск:
where bukva1=X AND bukva3=Л and bukva5=О

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

antson

Новичок
Партнер клуба
http://ru.wikipedia.org/wiki/Список_необычных_слов_русского_языка

а задачка все интересней.


Может все таки не все слова , а самое длинное например нужно ?

иначе запрос скорее всего выродить во фулл скан словаря
 

cooler_ua

Новичок
Решил задачку достаточно простым способом, завтра отпишусь как именно.
 

nalim

Новичок
НА вскидку хватит 4 32 битных маски:
1 маска есть ли 1 буква
2 маска есть ли 2 буквы
3 маска есть ли 3 буквы
4 маска есть ли 4 буквы

например БАБА
1 маска
АБВГД...
00000...
2 маска
АБВГД...
11000...
3 маска
АБВГД...
00000...
4 маска
АБВГД...
00000...


Фишка в томм что что количество одинаковых букв в слове не велико, чт оснижает кол-во вариантов))
нужно может и не 4 маски а столько масок, сколько максимум одинаковых букв
 

Sawa

Новичок
ТС изначально сказал что это игра, вроде "словолом" для вконтакте
хочет ничего не зная заработать денег... кххх ))

DiMA и Mols , +1 , быстрейший способ найти все необходимые слова, проиндексировать количество букв в слове отдельными столбцами

условие будет вроде (писалось выше) для строки AABBCC:
Where sA<=2 && sB<=2 && sC<=2 && sD=0 && sE=0...
где sA по дефолту 0, в where будет столько параметров, сколько букв в используемом языке.

получим все слова которые могут быть составлены из предложенной комбинации букв ( sA<=2 , т.е. меньше двух, может буквы вообще нет или она 1 )

UPD: разумеется, поиск должен происходить по готовой ,полной базе слов , если какое либо слово в базу не попало, ничего не найдет.... (уточнение, мало-ли кто читать будет)
 
Сверху