[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Анаграмы
Guest
Задается словарь. Найти в нем все анаграммы (слова, составленные из одних и тех же букв).


т.е.
t = "mama"
s = "amma"

true

t = "mama"
s = "ajma"

false

помогите сделать

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

_____________
Стимулятор ~yoomoney - 41001303250491
Игорь_Vasinsky
тебе нужно брать нужное слово - делать из него массив - в каждом элементе 1 символ (preg_split())

потом построчно считывать файл (словарь) - и с каждым строкой - тоже самое проделывать

в итоге у тя 2 массива которые нужно сравнить с помощью array_diff() - если массив вернулся - значит есть буквы отличные от искомых в слове

_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
Игорь_Vasinsky
почти одинаково))

при этом я так понимаю количество определённых букв в слове - тоже должно совпадать?

_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
Игорь_Vasinsky
<?php
$dic = file('test.txt', FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);

$word = 'mama';

$arr_word = preg_split("##", $word, -1, PREG_SPLIT_NO_EMPTY);

foreach($dic as $line)
{
$arr_line = preg_split("##", $line, -1, PREG_SPLIT_NO_EMPTY);

if(count($arr_word) == count($arr_line))
if(!array_diff($arr_line, $arr_word))
echo 'yes: '.$line.'<br />';
}
?>


ищем

mama


файл

mama
amma
ammam
aja
ammah
assa
mmaa
aamm



Результат
yes: mama
yes: amma
yes: mmaa
yes: aamm


_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
Быстрый ответ:

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