Domanda di programmazione:
Reverse words in a string (words are separated by one or more spaces). Now do it in-place.
Che cosa significa "in-place" nel contesto precedente per un linguaggio interpretato come PHP o JavaScript?
Domanda di programmazione:
Reverse words in a string (words are separated by one or more spaces). Now do it in-place.
Che cosa significa "in-place" nel contesto precedente per un linguaggio interpretato come PHP o JavaScript?
Dipende da quanto è bassa la lingua con cui stai lavorando, ma assumendo qualcosa come C significa "non togliere la stringa e rimetterla insieme in una diversa parte della memoria, modificare la parte della memoria la stringa è già in ".
vale a dire. Non:
1. foo bar baz
2. foo bar baz -> baz
3. foo bar baz -> baz bar
4. foo bar baz -> baz bar foo
ma
1. foo bar baz
2. baz foo bar
3. baz bar foo
(O comunque esattamente il tuo algoritmo funzionerà.)
Normalmente significa eseguire l'operazione senza utilizzare alcuna memoria aggiuntiva. In termini di complessità spaziale, la complessità dello spazio ausiliario sarebbe O (1).
In pratica, a seconda dell'implementazione, possono essere consentite variabili temporanee. In questo caso l'output dovrebbe utilizzare la stessa posizione in memoria come input.
In questo contesto, si riferisce alla modifica della variabile originale, anziché utilizzare ulteriore memoria. Ciò significa che, anziché eseguire la stringa originale e copiare ciascun carattere in una nuova variabile stringa, è necessario scambiare i pezzi dell'originale mentre lo si sta visualizzando.
Wikipedia in realtà ha un intero articolo sull'argomento, citando la pertinenza e l'utilità dell'argomento relativo alla riduzione al minimo dell'uso della memoria .
Al posto sarà qualcosa di simile:
void reverse(char *str)
{
if(!str)return;
reverse(strtok(NULL," "));
printf("%s ",revStr);
}
"Un algoritmo sul posto (o in latino in situ) è un algoritmo che trasforma l'input utilizzando una struttura di dati con una piccola quantità costante di spazio di archiviazione aggiuntivo, in genere l'input viene sovrascritto dall'output durante l'esecuzione dell'algoritmo. "
Fonte:
Algoritmo sul posto
Leggi altre domande sui tag algorithms terminology strings computer-science