IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

> последовательность символов
Вагон
сообщение 25.10.2006 16:12
Сообщение #1





Группа: Пользователи
Сообщений: 5
Пол: Мужской

Репутация: -  0  +


Дана строка длиной N символов. Справа строка ограничена пробелом.
Проверить наличие двух одинаковых слов.
Как я понимаю, между словами пробелов нет.
не пойму, как решать
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
Malice
сообщение 25.10.2006 16:20
Сообщение #2


Профи
****

Группа: Пользователи
Сообщений: 705
Пол: Мужской

Репутация: -  20  +


Цитата(Вагон @ 25.10.2006 17:12) *

Как я понимаю, между словами пробелов нет.

А что есть? Слова как друг от друга отделять, по словарю ? smile.gif Если известна N, то от чего пробелом ограничена строка?
Скорее всего слова через пробел и в этом случае поиск по сайту даст тебе ответ.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Вагон
сообщение 25.10.2006 17:29
Сообщение #3





Группа: Пользователи
Сообщений: 5
Пол: Мужской

Репутация: -  0  +


Цитата(Malice @ 25.10.2006 16:20) *

А что есть? Слова как друг от друга отделять, по словарю ? smile.gif Если известна N, то от чего пробелом ограничена строка?
Скорее всего слова через пробел и в этом случае поиск по сайту даст тебе ответ.

Почему бы и нет? А если под словом имеется ввиду последовательность одинакових символов
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Michael_Rybak
сообщение 25.10.2006 20:11
Сообщение #4


Michael_Rybak
*****

Группа: Модераторы
Сообщений: 1 046
Пол: Мужской
Реальное имя: Michael_Rybak

Репутация: -  32  +


Если "последовательность одинакових символов", то просто проверить, что все буквы - разные. Любые две одинаковые буквы удовлетворяют такому определению. А вот если два наибольших одинаковых слова - это куда сложнее. И рассказывать долго. А если словарь дан - то вообще третья задача.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Вагон
сообщение 26.10.2006 8:49
Сообщение #5





Группа: Пользователи
Сообщений: 5
Пол: Мужской

Репутация: -  0  +


Цитата(Michael_Rybak @ 25.10.2006 20:11) *

Если "последовательность одинакових символов", то просто проверить, что все буквы - разные. Любые две одинаковые буквы удовлетворяют такому определению. А вот если два наибольших одинаковых слова - это куда сложнее. И рассказывать долго. А если словарь дан - то вообще третья задача.

Например-"абракадабра" имеется два одинаковых слова "ра"
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Malice
сообщение 26.10.2006 9:18
Сообщение #6


Профи
****

Группа: Пользователи
Сообщений: 705
Пол: Мужской

Репутация: -  20  +


Цитата(Вагон @ 26.10.2006 9:49) *

Например-"абракадабра" имеется два одинаковых слова "ра"

И не только, их там полно.
А вообще если так вопрос поставлен, то надо делать перебор, что-то типа этого:
Код
...
for x:=2 to n div 2 do
   for i:=1 to n div 2 do
     for j:=i+x to n-x+1 do
if copy(s,i,x)=copy(s,j,x) then  ...
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Michael_Rybak
сообщение 26.10.2006 12:52
Сообщение #7


Michael_Rybak
*****

Группа: Модераторы
Сообщений: 1 046
Пол: Мужской
Реальное имя: Michael_Rybak

Репутация: -  32  +


Не-а. Перебор делать не надо, потому что существует множество замечательных быстрых алгоритмов для строк. Например, поиск подстроки длины X внутри строки длины Y можно осуществить за O(X+Y), а не за O(XY), как это делает, например, функция Pos в Паскале. Вообще, практически все что угодно со строками можно сделать за n log n. Но сделать это сложнее всего, когда нет постановки задачи smile.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 21.07.2025 20:21
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"