Puctuation - {1}
Извинете ! Имам проблем и не съм сигурен къде точно съм сгрешил.
Линк към judge : https://judge.softuni.bg/Contests/Practice/Index/1716#0
Код
#include <iostream>
#include <string>
#include <queue>
#include <stack>
#include <sstream>
#include <utility>
bool equal(std::queue<int> x, int symb)
{
int const size = x.size();
for (int i = 0; i < size; i++)
{
if (x.front() == symb)
{
return true;
}
x.pop();
}
return false;
}
std::pair <std::queue<int>, std::queue<int>> Input()
{
std::string sentence; std::getline(std::cin, sentence);
std::istringstream input(sentence); char symb;
std::pair<std::queue<int>, std::queue<int>> x; int symbs = 0, time = 1;
while (input >> symb)
{
if ((symb < 'a' || symb > 'z') && (symb < 'A' || symb > 'Z') && symb != '|')
{
symbs++;
}
else if (symb == '|')
{
if (!equal(x.first, symbs))
{
x.first.push(symbs); x.second.push(1);
}
else {
int swap = x.second.front(); x.second.pop();
x.second.push(++swap);
}
time++; symbs = 0;
}
}
return x;
}
int main(void)
{
std::pair<std::queue<int>, std::queue<int>> information = Input();
int const size = information.first.size();
for (int i = 0; i < size; i++)
{
std::cout << information.first.front() << " symbol sentences: " << information.second.front() << std::endl;
information.first.pop(); information.second.pop();
}
}
Дава ми 40/100 точки. Някой може ли да каже къде може да е проблема , освен факта, че пише " "!"#$%&'()*+,-./:;<=>?@[]^_`{}~ ", че трябва да бъдат считани за символи, а аз казвам всичко без '|' и буквите. Също така ако някой има по-дорба идея ще се радвам да я напише !
Благодаря за кода и обяснението ! Значи проблема в моя код е бил в това , че не е хващал всеки символ ?
@LoshaPanda
Не съм дебъгвал решението Ви, но ако държите да запазие концепцията му, може за начало да подмените кода за анализ на стринга (той със сигурност е непълен - например ако има числа в изречението) с вариант на моя и да видите дали ще е достатъчно.