Heim > Backend-Entwicklung > C++ > Hauptteil

Ändern Sie eine Zeichenfolge, indem Sie jedes Zeichen zum Abstand vom Ende des Wortes hinzufügen

王林
Freigeben: 2023-09-12 08:17:02
nach vorne
654 Leute haben es durchsucht

Ändern Sie eine Zeichenfolge, indem Sie jedes Zeichen zum Abstand vom Ende des Wortes hinzufügen

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.

Problemstellung

Ändern Sie bei einer gegebenen Zeichenfolge S die Zeichenfolge, indem Sie den Abstand jedes Zeichens vom Ende des Wortes vergrößern.

Methode

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.

Beispiel

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;
}
Nach dem Login kopieren

Ausgabe

lhnmo {rtmd
Nach dem Login kopieren

Zeitliche Komplexität

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.

Weltraumkomplexität

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.

Fazit

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!

Verwandte Etiketten:
Quelle:tutorialspoint.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage