• Pascal ABC кто разбирается, задание очень сложное.

    Дана строка содержащая любые символы кроме русских букв.

    Под "словом" будем понимать последовательность символов, ограниченную пробелами или стоящую в конце или начале строки. Между словами может быть несколько пробелов. Так же пробелы могут быть в конце или начале строки.

    Написать функцию, которая в заданной строке находит количество cлов - палиндромов.

    Использовать заголовок:

    function CalcWord(Stroka: string): integer;

Ответы 1

  • Не такое оно и сложное.Главная проблема - то, что между словами может быть несколько пробелов.Устраним её, написав функцию, которая оставляла бы между словами по 1 пробелу:function RemoveSpaces(str : string) : string;begin   //Тут цикл for, переписанный через while   var iter := 1;   //Проходим по строке   while (iter < str.Length) do   begin      //Если видим 2 пробела подряд, удаляем 1 и откатывает итератор.      if (str[iter] = ' ') and (str[iter + 1] = ' ') then         begin            str := str.Remove(iter, 1);            iter -= 1;         end;      iter += 1;   end;   RemoveSpaces := str;end;Теперь мы можем получить кол-во слов очень просто:function CalcWords(str : string) : integer;begin   CalcWords := RemoveSpaces(str).Split(' ').Count();end;Т.е. мы делим строку на массив через пробелы, и считаем кол-во элементов массива.полный код: https://pastebin.com/A63ggdWm
  • Добавить свой ответ

Войти через Google

или

Забыли пароль?

У меня нет аккаунта, я хочу Зарегистрироваться

How much to ban the user?
1 hour 1 day 100 years