Witajcie mam problem. Otóż mam zrobić program taki jak w tytule przykład :
Wejście : aaaaaabbbbbbddddddefg
Wyjscie :a6b6d6efg (czyli zsumował ilość 'a', ilość 'b', ilośc 'd' itp)
oto mój kod :
string GetValueOfChars(string chars)
{
int size = chars.length();
bool exit = false;
stringstream ss;
int z;
string TheEnd = "";
for(int i = 0; i < size; i+=z)
{
z = 1;
while(!exit)
{
if(chars[i] == chars[z])
z++;
else
exit = true;
}
if(z > 2)
{
ss << z;
TheEnd += chars[i] + ss.str();
}
else
TheEnd += chars[i];
}
return TheEnd;
}
I mam 2 problemy ;D
- gdy wpisze wszystkie te same litery wyskakuje jakiś dziwny error ;) np :
wejście : kkkkkkkkkkkkkkkkkkkkkkkkkkk
wyjście : ERROR ;(
#EDIT = ten error wywala prawdopodobnie dlatego, że porównuje element chars[i] == chars[z] a chars[z] może już wcale nie istnieć (tzn nie będzie do kolejny element tablicy)
2)gdy wpisze tak jak powinno być w zadaniu :
wejście: kkkkkkkkrrrrrrrrefg
wyjście: k8rrrrrrrrefg
Jak widać nie zsumowało mi literki 'r'.
Jakieś sugestie ?