/*

Разработать класс, реализующий структуру данных дек.
Реализовать метод, который определяет, что элементы, извлекаемые из левого конца дека, включались в правый конец дека.
Значением элементов дека являются строки ограниченной длины.

*/

#include <iostream>
#include <deque>
#include <string>

using namespace std;


class StringDeque {
private:
    deque<string> data;

public:
    // Добавление элемента в правый конец дека
    void pushRight(const string& element);

    // Извлечение элемента из левого конца дека
    string popLeft();

    // Проверка, были ли извлеченные элементы добавлены в правый конец дека
    bool isRightSequence(const deque<string>& sequence);
};

// Добавление элемента в правый конец дека
void StringDeque::pushRight(const string& element) {
    data.push_back(element);
}

// Извлечение элемента из левого конца дека
string StringDeque::popLeft() {
    string element = data.front();
    data.pop_front();
    return element;
}

// Проверка, были ли извлеченные элементы добавлены в правый конец дека
bool StringDeque::isRightSequence(const deque<string>& sequence) {
    if (sequence.size() > data.size()) {
        return false; // Последовательность длиннее дека
    }

    // Проверяем элементы с правого конца дека
    for (int i = 0; i < sequence.size(); ++i) {
        if (sequence[i] != data[data.size() - 1 - i]) {
            return false; // Элементы не совпадают
        }
    }

    return true; // Последовательность соответствует
}


int main() {
    StringDeque dequeBuffer;
    dequeBuffer.pushRight("string1");
    dequeBuffer.pushRight("string2");
    dequeBuffer.pushRight("string3");

    deque<string> extracted = {"string3", "string2"};

    if (dequeBuffer.isRightSequence(extracted)) {
        cout << "Извлеченные элементы были добавлены в правый конец дека" << endl;
    } else {
        cout << "Извлеченные элементы не были добавлены в правый конец дека" << endl;
    }

    return 0;
}

Embed on website

To embed this project on your website, copy the following code and paste it into your website's HTML: