Kannst du diese Funktion schreiben?

1 Antwort

Mit einem Kellerautomaten bekommst du das hin.

Landest du ein Zeichen, das eine Formatierung einleitet oder beendet, dann prüfst du, ob da ganz oben dieses Zeichen schon liegt. Wenn nein, dann legst du dieses in den Keller und schreibst den entsprechenden Formatierungs-Starttag. Wenn ja, dann nimmst du dieses vom Keller weg und schreibst den entsprechenden Formatierungs-Endtag.

Ist der Keller am Ende leer, dann sind Aus- und Eingabe valide. Wenn nicht, dann nicht.

Bei der Implementierung ist ein Keller ein Stack, der Rest sollte klar sein.