C++ Fundamentals - Exam (17 November 2019) - 1.Reporter - не мога да получа повече от 50т. от Judge
Здравейте, другари!
Имам нужда от вашата помощ за решаването на следната задача: https://judge.softuni.bg/Contests/Practice/Index/1751#0
Моето решение е следното:
int main()
{
std::set<std::string> str;
//std::set<std::string>::iterator itr;
std::stringstream infoStream;
std::string temp;
std::string output;
int turns = 0;
std::string getInputStr;
std::getline(std::cin, getInputStr);
turns = std::stoi(getInputStr);
for (size_t i = 0; i < turns; i++)
{
std::getline(std::cin, getInputStr);
infoStream << getInputStr;
//infoStream << " ";
char previusDot = 57;
while (!infoStream.eof())
{
infoStream >> temp;
if (!str.count(temp) || temp[0] == 46)
{
if (previusDot != temp[0])
{
output += temp + " ";
previusDot = temp[0];
}
if (temp[0] == 46 || temp[0] == 33 || temp[0] == 63 || temp[0] == 59) // за край на изречението освен точка съм добавил и ! ? ;
{
str.clear();
}
}
str.insert(temp);
if (temp[0] > 64 && temp[0] < 91) //проверявам за малка и голяма буква на всяка дума (Help == help)
{
temp[0] += 32;
str.insert(temp);
}
if (temp[0] > 96 && temp[0] < 123) //проверявам за малка и голяма буква на всяка дума (Help == help)
{
temp[0] -= 32;
str.insert(temp);
}
}
infoStream.clear();
}
output.resize(output.size() - 1); //махам последният празен интервал
std::cout << output;
//int a;
//std::cin >> a;
return 0;
}
Като оценка от системата получавам 50/100 и не мога да разбера какъв е проблема! При какви входни данни получавам грешни отговори?
Ще съм много благодарен ако някой може да даде идея.
Поздрави,
Александър
Дори и да се придържам към условието, отново получавам 50/100.
Този update за проверка за малка и голяма начална буква за всяка дума в изречение и добавянето на !?; за край на изречението го въведох в последствие като си мислех, че може би това ще окаже благоприятно развитие на резултата 50/100.
Явно има и други пропуски в логиката на решението ти. Опитай да поизчистиш кода (прекалено много if-ове, труден за четене), помисли за по-кратки начини за постигане на целите ти. Ето едно решение от мен за 100/100, но все пак опитай първо да оправиш твоето..
Послушах съвета ти и се справих.
Благодаря ти!