Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 14.11.2009, 00:11   #1
Паскалька^^
Пользователь
 
Регистрация: 25.11.2008
Сообщений: 53
Вопрос Строки(Паскаль)

Дано 2 слова длин a и b (a,b<20, a>b). Нужно вывести наименьшее количество удалений и замен символов из строки а, чтобы получить строку b и вывести строку a с учётом удалений символов. (не считая замены).
Паскалька^^ вне форума Ответить с цитированием
Старый 14.11.2009, 00:26   #2
LeBron
Форумчанин
 
Регистрация: 10.10.2009
Сообщений: 680
По умолчанию

Вот как удалось задачу упростить начальную... Умеете писать битовый перебор? Просот битовый перебор с проверкой - при таких ограничениях пройдет.
LeBron вне форума Ответить с цитированием
Старый 14.11.2009, 00:30   #3
Паскалька^^
Пользователь
 
Регистрация: 25.11.2008
Сообщений: 53
По умолчанию

LeBron, да, задача стала значительно проще и понятнее...
Про битовый перебор не знаю, т.к. программированием начала заниматься совсем недавно (полгода от силы)...((
Паскалька^^ вне форума Ответить с цитированием
Старый 14.11.2009, 00:36   #4
LeBron
Форумчанин
 
Регистрация: 10.10.2009
Сообщений: 680
По умолчанию

Цитата:
Сообщение от Паскалька^^ Посмотреть сообщение
LeBron, да, задача стала значительно проще и понятнее...
Про битовый перебор не знаю, т.к. программированием начала заниматься совсем недавно (полгода от силы)...((
Сам занимаюсь менее года... Если кто-небудь объяснит до завтра - отлично... Если нет - завтра утром объясню, сейчас спать.
LeBron вне форума Ответить с цитированием
Старый 14.11.2009, 09:05   #5
Паскалька^^
Пользователь
 
Регистрация: 25.11.2008
Сообщений: 53
По умолчанию

Количество удалений найти очень легко, del:=Length(a)-length(b)..
Далее у меня была вот такая мысль:
1. Сравнить строки а и b
2. Удалить несовпадающие символы и строки a, причём делать это пока length(a) не станет равно length(b)
3. Сосчитать кол-во несовпадений в полученных строках (теперь уже равной длины)
4.Вывести строку a и результат 3-го пункта

а вот как это реализовать у меня не получается...
Паскалька^^ вне форума Ответить с цитированием
Старый 14.11.2009, 11:01   #6
LeBron
Форумчанин
 
Регистрация: 10.10.2009
Сообщений: 680
По умолчанию

Цитата:
Сообщение от Паскалька^^ Посмотреть сообщение
Количество удалений найти очень легко, del:=Length(a)-length(b)..
Далее у меня была вот такая мысль:
1. Сравнить строки а и b
2. Удалить несовпадающие символы и строки a, причём делать это пока length(a) не станет равно length(b)
3. Сосчитать кол-во несовпадений в полученных строках (теперь уже равной длины)
4.Вывести строку a и результат 3-го пункта

а вот как это реализовать у меня не получается...
Доброе утро, я снова здесь Нет, не все так просто, как Вы думаете. Хотя Ваш вариант вполне логично приходит в голову, но не все так просто. Проблема в том, как выбрать "несовпадающие" символы - ведь надо еще учесть, к примеру, совмещение. По поводу бинарного перебора - объясняю. Любая буква может или входить в строку после вычеркивания, или не входить. Если вхождение определенной буквы обозначить 1, а невхождение 0, то, допустим, выбор из 6 букв 1ой, 3ей и 6ой будет выглядеть, как 101001. Все возможные варианты выбора букв из набора из n букв можно описать всеми двоичными числами длины n (возможно, с ведущими нолями). Нахоим самое большое такое число, а потом перебираем все числа от 1 до этого числа - смотрим, сколько единичных битов получиться,- если столько, сколько нам надо (сколько должно быть в итоговой строке), то проверяем то слово, которое "получаеться из этих битов". Если оно на данный момент лучшее - отлично, делаем его образцом на будущее. Лучшее или нет - это будет видно по количеству совпадений.
LeBron вне форума Ответить с цитированием
Старый 14.11.2009, 13:12   #7
Паскалька^^
Пользователь
 
Регистрация: 25.11.2008
Сообщений: 53
По умолчанию

LeBron, как всё оказывается сложно.....
Паскалька^^ вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Паскаль. Строки. Nubas Помощь студентам 5 25.10.2009 22:40
Паскаль, строки Паскалька^^ Помощь студентам 7 25.10.2009 15:39
паскаль(( строки(( lumenка Паскаль, Turbo Pascal, PascalABC.NET 0 23.05.2009 17:53
паскаль строки Fornarina Помощь студентам 1 27.12.2008 01:31