Zdravím, na vstupu mám řetězec, který může obsahovat čtyřciferná čísla, znak "," a "-" a libovolné množství mezer. Z tohoto řetězce mám extrahovat čísla, v případě vstupu s "-" celý interval, kdy číslo před "-" značí počátek intervalu a číslo za značí jeho konec.
Moje řešení bylo následující:
1, projdu řetězec a spočtu si, kolik je platných znaků - tedy veškeré dovolené znaky bez bílých znaků
2, vytvořím nový řetězec, do kterého v cyklu zkopíruji platné znaky, čímž jsem dosáhl toho, že ať je na vstupu kolik chce mezer, vždy dostanu řetězec ve tvaru "xxx,xxx-xxx" atd (tedy číslo, znak, interval, ... ).
3, poté v cyklu kontroluji, zda jsou čtyři číslice a poté čárka, vrať čtyřmístné číslo, pokud je poté pomlčka, vjeď do cyklu a vrať čísla v intervalu.
V čem je problém:
Algoritmus je příliš časově náročný, ač se mi to nezdá a v PC jede rychle (měřil jsem i čas pomocí time v c++), tak nástroj na vyhodnocení mi vyhodí, že překračuji přidělený časový limit 2 s.
Poprosil bych tedy o navedení na jinou cestu, ať nad tím sedím, tak jiný způsob mě zatím nenapadl.
Díky za rady.