Beim Umgang mit Zeichenfolgen müssen wir sie manchmal auf eine bestimmte Weise modifizieren, um bestimmte Anforderungen zu erfüllen. Eine der Anforderungen besteht darin, die Zeichenfolge zu ändern, indem der Abstand jedes Zeichens vom Ende des Wortes vergrößert wird. In diesem Artikel diskutieren wir Möglichkeiten, dieses Problem mit C++ zu lösen.
Ändern Sie bei einer gegebenen Zeichenfolge S die Zeichenfolge, indem Sie den Abstand jedes Zeichens vom Ende des Wortes vergrößern.
Um dieses Problem zu lösen, können wir die folgenden Schritte ausführen:
Erstellen Sie die angegebene Zeichenfolge S in einzelne Wörter.
Durchlaufen Sie jedes Wort und addieren Sie für jedes Zeichen die Position vom Ende zum ASCII-Wert.
Fügen Sie das geänderte Wort zur letzten Zeichenfolge hinzu, die als „res“ bezeichnet wird.
Wiederholen Sie die Schritte 2 und 3 für alle Wörter in der Zeichenfolge.
Gibt die endgültige geänderte Zeichenfolge zurück.
Dies ist die Code-Implementierung in C++:
#include <iostream> #include <sstream> #include <vector> using namespace std; string modifyString(string S) { string res = ""; vector<string> words; // Tokenize the string into individual words istringstream ss(S); string word; while (ss >> word) { words.push_back(word); } // Iterate over each word for (int i = 0; i < words.size(); i++) { string word = words[i]; string modified_word = ""; // Iterate over each character in the word for (int j = 0; j < word.length(); j++) { int ascii_value = word[j] + (word.length() - 1 - j); modified_word += char(ascii_value); } // Add the modified word to the final string res += modified_word; // Add a space to the final string if there are more words to be added if (i != words.size() - 1) { res += " "; } } return res; } int main() { string S = "hello world"; string modified_S = modifyString(S); cout << modified_S << endl; // Outputs "oekmo kmlqx" return 0; }
lhnmo {rtmd
Die zeitliche Komplexität der Lösung beträgt O(N*M), wobei N die Anzahl der Wörter in der Zeichenfolge und M die durchschnittliche Länge der Wörter ist.
Die räumliche Komplexität der Lösung beträgt O(N*M), wobei N die Anzahl der Wörter in der Zeichenfolge und M die durchschnittliche Länge der Wörter ist.
Im obigen Beispiel nehmen wir die Zeichenfolge „Hallo Welt“ als Eingabe. Die geänderte Zeichenfolge ist „oekmo kmlqx“. In der geänderten Zeichenfolge wird das erste Zeichen „h“ in „o“ geändert, da sein Abstand vom Ende des Wortes 4 beträgt. Ebenso wurden andere Charaktere geändert.
Die Code-Implementierung zerlegt zunächst die gegebene Zeichenfolge S in Wörter und speichert sie in einem Vektor. Anschließend geht es jedes Wort durch und fügt es für jedes Zeichen im Wort ab der Endposition zu seinem ASCII-Wert hinzu. Die geänderten Wörter werden dann zur endgültigen Zeichenfolge res hinzugefügt. Schließlich gibt der Code die geänderte Zeichenfolge zurück.
Zusammenfassend lässt sich sagen, dass wir die angegebene Zeichenfolge erfolgreich geändert haben, indem wir den Abstand jedes Zeichens vom Ende des Wortes vergrößert haben. Die oben genannten Methoden und Implementierungen können verwendet werden, um ähnliche Probleme im Zusammenhang mit String-Operationen zu lösen.
Das obige ist der detaillierte Inhalt vonÄndern Sie eine Zeichenfolge, indem Sie jedes Zeichen zum Abstand vom Ende des Wortes hinzufügen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!