Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
1 / 1 / 0
Регистрация: 16.01.2013
Сообщений: 76
1

Непонятно условие. Основы С++ (найти в S1,…,Sn все слова, из которых могло бы получиться a1,…,a10 в результате одной ошибки)

31.01.2013, 14:17. Просмотров 934. Ответов 7
Метки нет (Все метки)

Добрый день. Задали решить пару задач из задачника Абрамова. Только условия вообще не могу понять! Помогите, пожалуйста, чем-нибудь!! Заранее благодарен!!

Тема: Программирование задач по обработке последовательности символов.
Задача 366 (3)
Даны символы a1,…,a10, натуральное число n , символы S1,…,Sn . Как и в предидущей задаче, будем рассматривать слова, входящие в последовательность S1,…,Sn , по-прежнему считая, что количество символов в каждом слове не превосходит 15. Будем также считать, что среди символов a1,…,a10 нет прорбелов, и поэтому последовательность a1,…,a10 может рассматриваться как одно слово. В словах могут быть ошибки:
3) пропущена одна буква.
Требуется найти в S1,…,Sn все слова, из которых могло бы получиться a1,…,a10 в результате одной ошибки.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
31.01.2013, 14:17
Ответы с готовыми решениями:

Непонятно условие. Основы С++ (Найти все слова, в которых доля букв a, b максимальна)
Добрый день. Задали решить пару задач из задачника Абрамова. Только условия вообще не могу понять!...

Найти в последовательности все слова, из которых могла бы получиться другая последовательность
Добрый вечер, нужна помощь в решении задачи. Даны символы а1....а10, натуральное число n,...

Найти максимальное число, которое может получиться в результате удаления ровно одной двоичной цифры
Помогите решить задачу: У Маленького Слоника есть целое число a, записанное в двоичной системе...

Найти либо те слова в тексте, в которых есть все буквы определенного слова, либо те, в которых нет ни одной
1 - текстовое поле, куда пользователь вводит произвольный текст. 2 - текстовое поле, куда...

7
_
317 / 151 / 27
Регистрация: 08.10.2011
Сообщений: 432
31.01.2013, 14:37 2
У задачи слишком путанное условие. Тут можно похерить половину текста без потери смысла, например, вот так:

"Дано слово, состоящее из символов a1,…,a10, натуральное число n , символы S1,…,Sn:
Требуется найти в S1,…,Sn все слова, из которых могло бы получиться слово a1,…,a10 без одной буквы."

Так легче понять?

Добавлено через 1 минуту
Да, и не понятно вот это:
Цитата Сообщение от Dark-VIN Посмотреть сообщение
3) пропущена одна буква.
Есть еще условия? (почему 3)
1
1 / 1 / 0
Регистрация: 16.01.2013
Сообщений: 76
01.02.2013, 01:50  [ТС] 3
Ну... Такое условие в книге.

3) - это по номеру варианта нужно сделать пункт 3...

Полная Задача выглядит так:

366. Даны символы a1,…,a10, натуральное число n , символы S1,…,Sn . Как и в предидущей задаче, будем рассматривать слова, входящие в последовательность S1,…,Sn , по-прежнему считая, что количество символов в каждом слове не превосходит 15. Будем также считать, что среди символов a1,…,a10 нет прорбелов, и поэтому последовательность a1,…,a10 может рассматриваться как одно слово. В словах могут быть ошибки:
1) переставлены две соседние буквы;
2) заменена одна буква;
3) пропущена одна буква.
Требуется найти в S1,…,Sn все слова, из которых могло бы получиться a1,…,a10 в результате одной ошибки.

Предидущая задача (365):

365. Даны натуральное число n, символы S1...,Sn. Будем рассматривать слова, образованные символами, входящими в последовательность S1,...,Sn (см. задачу 269) считая при этом, что количество символов в каждом слове не превосходит 15.
а) Найти наибольшую длину символов-палиндромов. (Если палиндромов нет. то ответом должно быть число 0.)
б) Выяснить, верно ли. что каждое слово, не являющееся палиндромом, имеет четную длину.
в) Выяснить, имеются ли два слова, каждое из которых получается переворачиванием другого.
г) Удалить из S1,...,Sn все слова, встречающиеся более двух раз.


269:

269. Даны натуральное число n, символы S1,...,Sn. Группы символов, разделенные пробелами (одним или несколькими) и не содержащие пробелов внутри себя, будем называть словами.
а) Подсчитать количество слов в данной последовательности.
б) Подсчитать количество букв а в последнем слове данной последовательности.
в) Найти количество слов, начинающихся с буквы б.
г) Найти количество слов, у которых первый и последний
символы совпадают между собой.
д) Найти какое-нибудь слово, начинающееся с буквы а.



В итоге всего, нужно зделать задачу 369, пункт 3...

 Комментарий модератора 
Запрещено давать ссылки на скачивание программ и книг с файлообменников (рапида, депозит и т.п.) и других сайтов (форумов), если есть возможность их скачать с сайтов фирм-производителей.
0
_
317 / 151 / 27
Регистрация: 08.10.2011
Сообщений: 432
01.02.2013, 08:44 4
Ясно.
Цитата Сообщение от Dark-VIN Посмотреть сообщение
Помогите, пожалуйста, чем-нибудь!!
Вы чего хотите то? Идею или готовую программу?

Идея №1:
Проверьте сколько символов слова "a" содержится в массиве символов "S":
- если все, то выводим все возможные варианты слова "a" без одной буквы (например, если a = "abra", S = "braasty", то возможными ответами будут "bra", "ara", "aba" и "abr" )
- если только одной буквы слова "а" нет в массиве "S", то выводим все возможные варианты слова "а" без этой буквы (например, если a = "abra", S = "brasty", то возможными ответами будут "abr" и "bra" )
- если в "S" не хватает более одной буквы, то решений нет

Идея №2:
В идеи №1 есть такой момент: здесь предполагается, что слова должны быть различными. Но если это не так, то вариантов решения становится больше. Например, для a = "abra" и S = "braasty" возможными вариантами будут следующие:
b r a(0), b r a(3), a(0) r a(3), a(3) r a(0), a(0) b a(3), a(3) b a(0), a(0) b r, a(3) b r,
где в скобках указан индекс буквы а в массиве S.
Здесь решение уже намного сложнее, т.к. надо перебирать все возможные перестановки одинаковых букв.

Добавлено через 50 минут
Упс, ошибочка:
вместо
b r a(0), b r a(3), a(0) r a(3), a(3) r a(0), a(0) b a(3), a(3) b a(0), a(0) b r, a(3) b r,
надо
b r a(2), b r a(3), a(2) r a(3), a(3) r a(2), a(2) b a(3), a(3) b a(2), a(2) b r, a(3) b r,
1
1 / 1 / 0
Регистрация: 16.01.2013
Сообщений: 76
05.02.2013, 16:30  [ТС] 5
Да что-то все равно запутано так...
0
1229 / 596 / 74
Регистрация: 01.10.2012
Сообщений: 2,844
05.02.2013, 16:55 6
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
bool Check1Missed( const char * beg1, const char * end1,   // первое слово (начало и конец)
                               const char * beg2, const char * end2 )  // второе
{
 if (end1 - beg1 + 1 != end2 - beg2) return false; // дина второго должна быть больше на 1
 int num = 0; 
 while (beg1 < end1) {
  if (beg1[0] != beg2[0]) {
   if (num) return false;
   ++num;
   ++beg2;
  }
  ++beg1;
  ++beg2;
 } 
 return num == 1;
}
1
1 / 1 / 0
Регистрация: 16.01.2013
Сообщений: 76
01.05.2013, 18:36  [ТС] 7
А как теперь вызывать эту функцию??
0
1229 / 596 / 74
Регистрация: 01.10.2012
Сообщений: 2,844
02.05.2013, 09:54 8
Цитата Сообщение от Dark-VIN Посмотреть сообщение
А как теперь вызывать эту функцию??
C++
1
2
3
const char * s1 = "TheString";
const char * s2 = "The2String";
bool test = Check1Missed(s1, s1 + strlen(s1), s2, s2 + strlen(s2));
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
02.05.2013, 09:54

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Как могло получиться два одинаковых ключа в HashMap?
Я буду приводить просто примеры. Вопрос сложный для меня, поэтому решил обратиться за помощью. Вот...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.