C++ :: Aufgabe #330 :: Lösung #2
2 Lösungen

#330
Text gemäß Vorlage neu sortieren
Anfänger - C++
von JKooP
- 12.02.2021 um 09:53 Uhr
Ein durcheinandergeratener Text soll gemäß einer Vorlage (Array) neu sortiert werden.
Dazu soll eine Methode/Funktion erstellt werden, mit der man die Zeichen des
Ausgangstextes gemäß den vorgegebenen Positionen im Array neu anordnet.
Ausgangstext = "programmyourtrainer"
Array = [ 9, 10, 11, 12, 13, 14, 15, 16, 5, 6, 7, 8, 0, 1, 2, 3, 4, 17, 18 ]
Zieltext = "trainyourprogrammer"
Erläuterung:
Das erste Zeichen des Ausgangstextes (p) muss gem. Array an die 9. Position.
Das Zeichen (y) muss an die 5. Position. Achtung: Array ist nullbasiert!
_ _ _ _ _ y _ _ _ p _ _ _ _ _ _ _ _
Viel Spaß
Dazu soll eine Methode/Funktion erstellt werden, mit der man die Zeichen des
Ausgangstextes gemäß den vorgegebenen Positionen im Array neu anordnet.
Ausgangstext = "programmyourtrainer"
Array = [ 9, 10, 11, 12, 13, 14, 15, 16, 5, 6, 7, 8, 0, 1, 2, 3, 4, 17, 18 ]
Zieltext = "trainyourprogrammer"
Erläuterung:
Das erste Zeichen des Ausgangstextes (p) muss gem. Array an die 9. Position.
Das Zeichen (y) muss an die 5. Position. Achtung: Array ist nullbasiert!
_ _ _ _ _ y _ _ _ p _ _ _ _ _ _ _ _
Viel Spaß
#2

von JKooP (18090 Punkte)
- 01.04.2021 um 11:20 Uhr
C++ 17
C-Code

#include <iostream> #include <string> #include <vector> std::string restore_string(std::string s, std::vector<int> indices) { std::vector<char> arr(indices.size()); auto k{ 0 }; for(const auto& i : indices) arr[i] = s[k++]; std::string str(arr.begin(), arr.end()); return str; } int main() { std::string s = "programmyourtrainer"; std::vector<int> i = { 9, 10, 11, 12, 13, 14, 15, 16, 5, 6, 7, 8, 0, 1, 2, 3, 4, 17, 18 }; std::cout << restore_string(s, i) << std::endl; }
Kommentare:
Für diese Lösung gibt es noch keinen Kommentar
Seite 1 von 0
1