Решение LeetCode для перестановки строк на C++: восстановление исходного порядка строк

Вот решение C++ проблемы «Перетасовка строк» ​​в LeetCode:

#include <vector>
#include <string>
std::string restoreString(std::string s, std::vector<int>& indices) {
    int n = s.length();
    std::string result(n, ' ');

    for (int i = 0; i < n; i++) {
        result[indices[i]] = s[i];
    }

    return result;
}

Это решение принимает в качестве входных данных строку sи векторные index. Вектор indexпредставляет желаемый порядок символов в перетасованной строке. Функция restoreStringсоздает результирующую строку той же длины, что и s, и инициализирует ее пробелами. Затем он перебирает каждый символ в sи присваивает его соответствующей позиции в результирующей строке на основе индексов.

Пример использования:

std::string s = "codeleet";
std::vector<int> indices = {4, 5, 6, 7, 0, 2, 1, 3};
std::string shuffledString = restoreString(s, indices);

Результат shuffledStringв этом примере будет «leetcode».