io avrei un approccio differente.
visto che sono stringhe e numeri separati da spazi agirei così:
1. creo un'array splittando stringhe e numeri
2. faccio il reverse dell'array in maniera da manipolare per pirmi gli ultimi indici oppure opero attraverso operatori numerici a partire dalla fine
3. se il valore della chiave array è un intero o un numero allora ho trovato l'ultimo numero altrimenti proseguo con la chiave successiva