Помощь - Поиск - Пользователи - Календарь
Полная версия: Обработка строки...
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
NeWT
Вот у меня 6 числа экзамен был. И там попалась мне одна задача, которую я так и не смог решить, а очень интересно было бы узнать и разобраться. Вообщем вот:
Ввести строку символов. Разделителями в строке могут быть "_", ":",...и т.д. Необходимо удалить пару слов являющимися анаграммами, и содержащих букву, которую необходимо ввести с клавиатуры...

P.S. Условие не совсем точное (не успел переписать на листочек)

Был бы весьма благодарен!!! :thanks:
volvo
NeWT
Ну так в чем проблема? Вводишь строку символов, заменяешь в ней все символы, которые могут быть разделителями слов на пробелы, в ФАКе есть функция, разбивающая строку на слова...
Вот эта функция определяет, являются ли 2 слова анаграммами...
Код
function is_anagram(s1, s2: string):boolean;
 var
   b: boolean;
   i, p: byte;
 begin
   is_anagram := false;
   if length(s1) <> length(s2) then exit;

   for i := 1 to length(s1) do
     begin
       p := pos(s1[i], s2);
       if p = 0 then exit;

       delete(s2, p, 1)
     end;
   is_anagram := true
 end;

Если слова s1 и s2 - анаграммы, то функция вернет True, иначе - False...
Все,что осталось - собрать это в одну программу... ;)
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.