Новости | FAQ | Авторы | Документация | В действии | Библиотека |
Инструменты | Полезные ссылки | Хостинги | Скачать | Примеры | Форум |
Ipo 18.05.2006 14:14
Есть два слова, назовем их ГЛАВНОЕ и ПРИСЛАНОЕ@_word_detect[w_send;w_main] # создание таблицы букв главного слова $W_M_Split[^table::create{piece}] ^for[i](0;^w_main.length[]-1){ ^W_M_Split.append{^w_main.mid($i;1)} } # создание таблицы букв введенного слова $W_S_Split[^table::create{piece}] ^for[i](0;^w_send.length[]-1){ ^W_S_Split.append{^w_send.mid($i;1)} } # временный хеш для отбора проверенных букв $W_T[^hash::create[]] # типа счетчик числа совпадений $W_C(0) # перебераем введенное слово по буквам и сверяем его с заданным словом ^W_S_Split.menu{ # если у нас несколько одинаковых букв то надо проверить только одну, а вследующий раз другую $Ti(0) $It(0) ^W_M_Split.menu{ ^if(($W_M_Split.piece eq $W_S_Split.piece) && ($W_T.$It ne 1) && ($Ti == 0)){ $Ti(1) ^W_C.inc[] $W_T.$It[1] } ^It.inc[] } } ^if($W_C == ^w_send.length[]){$result(1)}{$result(0)} }