Also schauen wir doch mal die Aufgabenstellung an:
„Sucht die längste Ziffernfolge (aus Ziffern von '0' bis '9') im String s. Gibt es mehrere gleich lange, wird davon die erste zurückgegeben. Sind keine Ziffern enthalten, gibt die Funktion den Wert 0 zurück.“
Daraus ergibt sich für mich als erstes:
Die Signatur der Funktion ist falsch müsste so aussehen:
function longestNumber(s : string) : string;
Ansonsten wird die Bedingung : „Gibt es mehrere gleich lange, wird davon die erste zurückgegeben“ nicht erfüllt.
Beispiele:
Input: „123 1234 12345 “ Result : „12345“
Input: „333 4444 5555 “ Result : „4444“ da erstes Vorkommen
Input : „ABCDEF“ : Result 0;
Und dann pseudo Code:
startfunc
Result ‚0‘
tempResult „“
Scheife 1 bis länge Input
Prüfe ob Input[schleife] ist eine Ziffer
Ja : hänge input[schleife] an tempresult;
Nein:block
Wenn länge tempresult > länge result dann setze result auf tempresult
Tempresult wieder auf „“ setzen
endblock
Schleifenende
Noch einmal prüfen:
Wenn länge tempresult > länge result dann setze result auf tempresult
endfunc