Матч
226, Очень
большая строка (VLNString)
Дивизион 2, Уровень
1
Задана строка, содержащая
последовательность слов. Слова отделяются бруг от друга пробелами. Необходимо
вывести первые буквы всех слов, преобразовав их в верхний регистр. При этом
слова “and”, “the”, “of” следует игнорировать.
Класс: VLNString
Метод: string makeAcronym(string longName)
Ограничения:
строка longName
содержит от 1 до 50 символов, в строку longName входят только символы ‘a’ – ‘z’ и
пробелы.
Вход. Строка longName.
Выход. Строка содержит первые буквы всех слов,
преобразованные в верхний регистр. Слова “and”, “the”, “of” игнорируются.
Пример входа
longName |
“dance dance revolution” |
“ return
of the king “ |
“the |
Пример выхода
“DDR”
“RK”
“
РЕШЕНИЕ
обработка строк
Используем потоковое чтение из
строки. Каждое прочитанное слово сравниваем с “and”, “the” и “of”. Если оно не
равно ни одному из них, записываем его первую букву в конец результирующей
строки res.
ПРОГРАММА
#include <cstdio>
#include <sstream>
#include <string>
using namespace std;
class VLNString{
public:
string
makeAcronym(string longName)
{
string
res="",temp;
stringstream
in(longName);
while(in >>
temp)
if ((temp !=
"and") && (temp != "the") && (temp != "of"))
res += toupper(temp[0]);
return res;
}
};