📜  从给定数组中找到原始数组,该数组是在 P 前缀反转后获得的 |第 2 组(1)

📅  最后修改于: 2023-12-03 14:49:27.408000             🧑  作者: Mango

从给定数组中找到原始数组

本题要求从一个给定的数组中找到原始数组,该数组是通过将前缀 P 反转后得到的。

输入格式

输入数据为一个数组 arr,该数组由原始数组的前缀 P 和其余部分组成,用一个整数 pivot 指定了前缀的长度,即 arr[:pivot] 是原始数组的前缀。

输出格式

输出数据为一个数组,即原始数组。

解题思路

由于给定数组是原始数组前缀的反转,因此可以通过反转给定数组的前缀,再将其余部分与前缀合并,即可得到原始数组。

具体实现方式为使用 Python 的切片操作,先将前缀反转,然后通过类似于 arr[pivot:]+reversed(arr[:pivot]) 的方式将其余部分与前缀合并。

Python 代码
def get_original_array(arr: List[int], pivot: int) -> List[int]:
    """
    从给定数组中找到原始数组,该数组是在 P 前缀反转后获得的。
    """
    return arr[pivot:]+list(reversed(arr[:pivot]))
C++ 代码
#include <vector>
using namespace std;

class Solution {
public:
    vector<int> get_original_array(vector<int>& arr, int pivot) {
        /**
         * 从给定数组中找到原始数组,该数组是在 P 前缀反转后获得的。
         */
        vector<int> original_arr(arr.begin()+pivot, arr.end());
        original_arr.insert(original_arr.end(), arr.begin(), arr.begin()+pivot);
        return original_arr;
    }
};