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

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

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 21.12.2013, 15:47   #1
kedrov2
Новичок
Джуниор
 
Регистрация: 21.12.2013
Сообщений: 1
Смех Олимпиадная задача: Подсчитать буквы в повторениях любимого слова Лёши. решить задания в pascal abc пожалуйста

Скучная лекция
Лёша сидел на лекции. Ему было невероятно скучно. Голос лектора казался таким далеким и незаметным...
Чтобы окончательно не уснуть, он взял листок и написал на нём свое любимое слово. Чуть ниже он повторил своё любимое слово, без первой буквы. Ещё ниже он снова написал своё любимое слово, но в этот раз без двух первых и последней буквы.
Тут ему пришла в голову мысль — времени до конца лекции все равно ещё очень много, почему бы не продолжить выписывать всеми возможными способами это слово без какой-то части с начала и какой-то части с конца?
После лекции Лёша рассказал Максу, как замечательно он скоротал время. Максу стало интересно посчитать, сколько букв каждого вида встречается у Лёши в листочке. Но к сожалению, сам листочек куда-то запропастился.
Макс хорошо знает любимое слово Лёши, а ещё у него не так много свободного времени, как у его друга, так что помогите ему быстро восстановить, сколько раз Лёше пришлось выписать каждую букву.
Входные данные
На вход подаётся строка, состоящая из строчных латинских букв — любимое слово Лёши.
Длина строки лежит в пределах от 5 до 100 000 символов.
Выходные данные
Для каждой буквы на листочке Лёши, выведите её, а затем через двоеточие и пробел сколько раз она встретилась в выписанных Лёшей словах (см. формат вывода в примерах). Буквы должны следовать в алфавитном порядке. Буквы, не встречающиеся на листочке, выводить не нужно.
Примеры тестов
Входные данные
hello
Выходные данные
e: 8
h: 5
l: 17
o: 5
Входные данные
abacaba
Выходные данные
a: 44
b: 24
c: 16
Примечание
Пояснение к первому примеру. Если любимое Лёшино слово — "hello", то на листочке у Лёши будут выписаны следующие слова:
• "hello"
• "hell"
• "ello"
• "hel"
• "ell"
• "llo"
• "he"
• "el"
• "ll"
• "lo"
• "h"
• "e"
• "l"
• "l"
• "o"
Среди этих слов 8 раз встречается буква "e", 5 раз — буква "h", 17 раз — буква "l" и 5 раз буква "o".
kedrov2 вне форума Ответить с цитированием
Старый 21.12.2013, 16:19   #2
ZX Spectrum-128
Участник клуба
 
Регистрация: 05.11.2013
Сообщений: 1,601
По умолчанию

А попытки ваши решить задачу увидеть можно?

Цитата:
Лёша сидел на лекции. Ему было невероятно скучно. Голос лектора казался таким далеким и незаметным...
Зато служба в ВС РФ оказалась совсем не скучной, а напротив, очень даже бодрящей.
ZX Spectrum-128 вне форума Ответить с цитированием
Старый 21.12.2013, 18:53   #3
Poma][a
Новичок
Джуниор
 
Регистрация: 11.10.2011
Сообщений: 3,882
По умолчанию

Цикл в цикле..
Далее с помощью Copy передаем часть строки в процедуру, которая прибавит кол-во буковок в глобальный массив..

Это перебор, который пройдет лишь некоторые тесты..

А не переборное решение..
это кол-во букв до нашей буквы+кол-во букв после нашей буквы+1+кол-во букв до*кол-во букв после (пишу наобум.. не проверяя..)
Poma][a вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите пожалуйста решить 5 несложных задач (Pascal ABC) Аня90 Паскаль, Turbo Pascal, PascalABC.NET 13 11.12.2012 18:33
Задания по объектно-ориентированному программированию на pascal abc.net molka Помощь студентам 4 30.03.2012 19:51
4 легких задания в Pascal ABC =) Andrew85252 Фриланс 2 28.12.2010 16:57
Задача в pascal?! помогите пожалуйста решить задачу. Absent Помощь студентам 6 09.04.2008 23:41