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

2 Lösungen Lösungen öffentlich
#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ß
#2
vote_ok
von JKooP (18090 Punkte) - 01.04.2021 um 11:20 Uhr
C++ 17
Quellcode ausblenden 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

Bitte melden Sie sich an um eine Kommentar zu schreiben.
Kommentar schreiben