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

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

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

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





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

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


Дана строка длиной N символов. Справа строка ограничена пробелом.
Проверить наличие двух одинаковых слов.
Как я понимаю, между словами пробелов нет.
не пойму, как решать
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов(1 - 11)
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 
 К началу страницы 
+ Ответить 
Lapp
сообщение 26.10.2006 9:08
Сообщение #6


Уникум
*******

Группа: Модераторы
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

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


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

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

Вагон, читай внимательнее. При точной реализации твоих слов
Цитата
А если под словом имеется ввиду последовательность одинакових символов

любая повторяющаяся буква даст тебе положительный результат (последовательность длины 1).
Michael_Rybak предложил дополнить твою формулировку словами "максимальной длины". Если так, то в слове "абракадабра" таковой является "абра", а не "ра".
Но тратить время на задачу с неопределенными условиями не очень хочется. Тебя не слишком затруднит уточнить формулировку?


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


Профи
****

Группа: Пользователи
Сообщений: 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
Сообщение #8


Michael_Rybak
*****

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

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


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





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

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


выяснил, что слова разделены пробелами. Но как организовать поиск одинаковых слов, ума не приложу. Поиск ничего не дал. Поможите!!! mega_chok.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
мисс_граффити
сообщение 26.10.2006 13:57
Сообщение #10


просто человек
******

Группа: Модераторы
Сообщений: 3 641
Пол: Женский
Реальное имя: Юлия

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


самый простой вариант:
считываешь первое слово. удаляешь его. если pos вернет не ноль - значит, это слово есть еще.
кстати, а что делать со словами, которые встречаются три, четыре, пять, двадцать раз?


--------------------
Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Вагон
сообщение 27.10.2006 15:46
Сообщение #11





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

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


Неужели никто не может проверить строку из 90 символов, ограниченную справа пробелом
на наличие двух одинаковых слов??? blink.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Michael_Rybak
сообщение 27.10.2006 16:32
Сообщение #12


Michael_Rybak
*****

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

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


Ты написал:

Цитата
не пойму, как решать


Тебе ответили (когда, наконец, добились формулировки):

Цитата
считываешь первое слово. удаляешь его. если pos вернет не ноль - значит, это слово есть еще.


Ты, игнорируя это (ни "спасибо", ни "не понял", ни "и как это сделать") пишешь:

Цитата
Неужели никто не может


Что из этого следует? Ничего хорошего.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

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

 



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