![]() |
|
Модераторы: korob2001, ginnie |
![]()
|
|
| dixoNICH |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 222 Регистрация: 20.3.2011 Репутация: нет Всего: нет |
Дан русский текст, найти все паллиндромы данного текста.
Т.е., например, дано $text = "ааа ааа рор рор хи хи привет тевип салам мам мам малас"; надо найти ааа ааа рор рор хи хи салам мам мам малас совершенно не представляю, как это сделать) подскажите, пожалуйста. |
|||
|
||||
| MakTpaxep |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 150 Регистрация: 25.11.2010 Репутация: нет Всего: нет |
"хи хи" точно должно находить?
" рор рор " с пробелами должно находиться. Вы определитесь как эту вашу строку рассматривать) Как массив (тогда не найдёт "салам мам мам малас") или как строку (тогда не найдёт "хи хи", но найдёт ещё "т т" и кучу других сочетаний). Вообщем много непонятного. Это сообщение отредактировал(а) MakTpaxep - 18.10.2011, 17:40 |
|||
|
||||
| dixoNICH |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 222 Регистрация: 20.3.2011 Репутация: нет Всего: нет |
С хихи да, я невнимательно просто писал, не должно его найти.
Не знаю, как рассматривать. Скажем так : есть файл с русским текстом. Надо найти все паллиндромы. Текст, например : 'привет тевирп хи их поп поп выфа2в вывфврор рор я еду гулять ьтялуг уде я'; Должно найти : я еду гулять ьтялуг уде я' 'привет тевирп хи их поп поп рор рор в общем нужны все фразы палиндромы. Это сообщение отредактировал(а) dixoNICH - 18.10.2011, 19:34 |
|||
|
||||
| alezzz |
|
||||
![]() сплю... ![]() ![]() Профиль Группа: Участник Сообщений: 499 Регистрация: 17.8.2009 Репутация: 1 Всего: 14 |
если "рор рор" тоже должно найти, то... немного магии perl:
|
||||
|
|||||
| dixoNICH |
|
||||||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 222 Регистрация: 20.3.2011 Репутация: нет Всего: нет |
спасибо! а как разбить не только по пробелу? по-обычному не получается ( $str =~ /(.+?)\s(??{reverse(split(/[.;:!?]/, $1))})/g |
||||||
|
|||||||
| alezzz |
|
|||
![]() сплю... ![]() ![]() Профиль Группа: Участник Сообщений: 499 Регистрация: 17.8.2009 Репутация: 1 Всего: 14 |
что такое "по-обычному"?
|
|||
|
||||
| dixoNICH |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 222 Регистрация: 20.3.2011 Репутация: нет Всего: нет |
$str =~ /(.+?)\s(??{reverse(split(/[.;:!?]/, $1))})/g
ну вот так) а ещё вопрос : если у меня например строка будет такой : $str = 'хи их хи их поп поп тевирп выфа2в привет'; то как мне найти тевирп привет? |
|||
|
||||
| alezzz |
|
|||
![]() сплю... ![]() ![]() Профиль Группа: Участник Сообщений: 499 Регистрация: 17.8.2009 Репутация: 1 Всего: 14 |
могу предложить нормализовать строку убрав все лишнее оставив по одному пробелу между словами. моим способом никак. Это сообщение отредактировал(а) alezzz - 18.10.2011, 20:04 |
|||
|
||||
| Pfailed |
|
||||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 933 Регистрация: 19.7.2009 Репутация: 22 Всего: 39 |
А у меня так получилось
Добавлено через 8 минут и 37 секунд
Можно так попробовать
|
||||||
|
|||||||
| alezzz |
|
|||
![]() сплю... ![]() ![]() Профиль Группа: Участник Сообщений: 499 Регистрация: 17.8.2009 Репутация: 1 Всего: 14 |
а так потеряются палиндромы внутри "тевирп привет". Это сообщение отредактировал(а) alezzz - 18.10.2011, 20:36 |
|||
|
||||
| dixoNICH |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 222 Регистрация: 20.3.2011 Репутация: нет Всего: нет |
второй вариант не работает для такой строки ( 'лол хи их хи их поп поп тевирп выфа2в привет лол'; находит только лол - лол |
|||
|
||||
| Pfailed |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 933 Регистрация: 19.7.2009 Репутация: 22 Всего: 39 |
|
|||
|
||||
| dixoNICH |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 222 Регистрация: 20.3.2011 Репутация: нет Всего: нет |
как дела друг как гурд алед
но ведь для такого не будет работать( |
|||
|
||||
| dixoNICH |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 222 Регистрация: 20.3.2011 Репутация: нет Всего: нет |
есть ли вариант рассмотреть массив слов, например
@words = qw/a b c/; потом формировать как-то хеш %words = ( a => ab,ac,ba,ca,abc,acb,bac,cab,bca ); ну и собственно так и рассмотреть всевозможные фразы в тексте, а потом уже перебирать фразы и смотреть, палиндром это или нет? |
|||
|
||||
| Suppir |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 588 Регистрация: 20.4.2009 Репутация: нет Всего: нет |
А мне интересно, можно ли написать скрипт, который сам составит фразу (пусть, и не связную),
которую можно будет прочитать задом-наперед, отчего получится другая фраза (пусть, и еще менее связная)? |
|||
|
||||
| dixoNICH |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 222 Регистрация: 20.3.2011 Репутация: нет Всего: нет |
никто не подскажет, как реализовать полный перебор фраз текста? )
|
|||
|
||||
![]()
|
| Правила форума "Perl" | |
|
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Perl: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |