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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 01.05.2014, 17:36   #1
stuxjkee
 
Регистрация: 18.04.2014
Сообщений: 4
По умолчанию Сделать из строки A строку B

Какое наименьшее количество операций(добавить 1 символ, удалить 1 символ, заменить 1 символ) нужно сделать, чтобы из строки A получить строку B?
stuxjkee вне форума Ответить с цитированием
Старый 01.05.2014, 21:46   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Минимум одну операцию, при условии что удаляемый символ и заменяемый равны.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 01.05.2014, 22:23   #3
Poma][a
Новичок
Джуниор
 
Регистрация: 11.10.2011
Сообщений: 3,882
По умолчанию

Код:
uses Math;

var
    a, b : string;
    s : array ['a'..'z'] of Integer;
    i, sum : Integer;
    ch : Char;

begin
    ReadLn(a);
    ReadLn(b);

    for ch := Low(s) to High(s) do s[ch] := 0;

    for i := 1 to Length(a) do
        Inc(s[a[i]]);

    for i := 1 to Length(b) do
        Dec(s[b[i]]);

    sum := 0;

    for ch := Low(s) to High(s) do
        Inc(sum, Abs(s[ch]));
    
    WriteLn(IfThen(Odd(sum), sum, sum div 2)) // к разговору о вчерашней теме, где я не успел отписаться :(
end.
P.S. Не проверял..
Poma][a вне форума Ответить с цитированием
Старый 02.05.2014, 10:51   #4
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

имхо тут далеко не всё просто и очевидно.

Poma][a, подскажите, Ваша программа найдёт, например,
что из строки
колад -> оклад
нужно два изменения

а из строки
башмак -> шумок
нужно сделать 4 изменения?
Serge_Bliznykov вне форума Ответить с цитированием
Старый 02.05.2014, 11:07   #5
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Цитата:
из строки A получить строку B
Если для общего случая, то max(N,M) где N и M количество символов в строках. Это для самого тяжелого случая - ни один символ из строки B не встречается в строке А
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию

Последний раз редактировалось Аватар; 02.05.2014 в 11:09.
Аватар вне форума Ответить с цитированием
Старый 02.05.2014, 11:10   #6
Poma][a
Новичок
Джуниор
 
Регистрация: 11.10.2011
Сообщений: 3,882
По умолчанию

Цитата:
имхо тут далеко не всё просто и очевидно.
Ага..
Цитата:
Poma][a, подскажите, Ваша программа найдёт, например,
что из строки
1) Я коварно ввел ограничения на маленькие латинские буквы..
2) Понял.. Спасибо..

Всё печально.. И в основном из-за замена..
Poma][a вне форума Ответить с цитированием
Старый 02.05.2014, 15:55   #7
Somebody
Участник клуба
 
Регистрация: 08.10.2007
Сообщений: 1,185
По умолчанию

Это называется расстояние Левенштейна.
Somebody вне форума Ответить с цитированием
Старый 02.05.2014, 16:06   #8
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от Somebody Посмотреть сообщение
Это называется расстояние Левенштейна.
Вот, именно! В голове крутилось, что я такую задачу где-то видел, и даже про расстояние вспомнил. Но только ваш пост всё окончательно прояснил!
спасибо.
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Задача на строки. Даны две строки. Определить можно ли из символов первой строки получить вторую строку.( написать подпрограммой и ANTON1994 Паскаль, Turbo Pascal, PascalABC.NET 5 09.02.2013 14:07
ComboBox как сделать строку первой lu_una Общие вопросы Delphi 22 16.11.2012 11:36
Сделать в гриде строки выше, чтобы не растягивать строки до бесконечности kris__tina БД в Delphi 1 09.06.2011 15:31
Как сделать цветной строку в TDBAdvGrid? k1r1ch БД в Delphi 2 29.04.2010 08:01
Строку сделать столбцом Joyst1k Microsoft Office Excel 13 23.12.2007 11:29