Scrivi un programma per sostituire tutte le occorrenze di "force" con "first" e tutte le occorrenze di "first" con "force", mantenendo il caso originale per tutte le posizioni dei personaggi:
"ForcefoRcefOrcE" -> "FirstfiRstfIrsT"
"FirstfiRstfIrsT" -> "ForcefoRcefOrcE"
Il resto della stringa deve rimanere invariato, quindi eseguire due volte il programma restituirà la stringa originale:
"thirst of forces" -> "thirst of firsts" -> "thirst of forces"
Il tuo programma dovrebbe funzionare su qualsiasi stringa iniziale. Quindi, come suggerimento, è meglio evitare di usare caratteri magici come rappresentazione intermedia, perché se provi una sostituzione a tre passaggi ( "force" -> "zzzzz", "first" -> "force", "zzzzz" -> "first"), fallirà sulle stringhe contenenti "zzzzz".
Dovresti supportare l'intera gamma di caratteri consentiti in una definizione di String dal tuo linguaggio di programmazione (nella maggior parte dei casi, è Unicode). Esempio, utilizzo della rappresentazione in stile JSON per caratteri non stampabili (\ u + 4 cifre):
"\u0000\u0001\u0002\u0003the Force of the firsT"
|
V
"\u0000\u0001\u0002\u0003the First of the forcE"
[Ff]non è presente non devi sostituire la parola.