Trang chủ Tin Học Lớp 8 Bạn là một hacker tài năng, vì vậy bạn đã...

Bạn là một hacker tài năng, vì vậy bạn đã viết chương trình Keylogger để đột nhập vào máy anh Kiên để ăn cắp đề Free Contest. Bạn đã thu được một dãy các kí tự

Câu hỏi :

Bạn là một hacker tài năng, vì vậy bạn đã viết chương trình Keylogger để đột nhập vào máy
anh Kiên để ăn cắp đề Free Contest. Bạn đã thu được một dãy các kí tự là một dãy các phím mà anh
Kiên đã bấm khi anh đang soạn đề, tuy nhiên, trong lúc soạn đề, anh Kiên đã dùng các phím sang trái,
phím sang phải để thay đổi vị trí con trỏ và phím Backspace để xóa một số kí tự. Bây giờ, để có được
đề Free Contest, nhiệm vụ của bạn là viết chương trình giải mã dãy kí tự vừa thu được.
Dữ liệu
Gồm một dòng duy nhất chứa một dãy kí tự L có độ dài l (1 ≤ l ≤ 106
) là dãy mà bạn thu được từ
chương trình Keylogger, gồm các kí tự có ý nghĩa như sau:
• Kí tự ’-’ biểu diễn phím Backspace: kí tự ở đằng trước con trỏ (nếu có) bị xóa.
• Kí tự ’<’ biểu diễn phím sang trái: con trỏ sang trái 1 kí tự, nếu có thể.
• Kí tự ’>’ biểu diễn phím sang phải: con trỏ sang phải 1 kí tự, nếu có thể.
• Các kí tự khác là các chữ cái tiếng Anh (in hoa lẫn in thường) hoặc các chữ số. Các kí tự này là
các kí tự trong đề bài, nếu các kí tự đó không bị xóa. Nếu con trỏ không ở cuối dòng, và anh Kiên
gõ các kí tự kiểu này, kí tự đó được "chèn" vào và các kí tự ở đằng sau con trỏ di chuyển sang phải
một vị trí.
Đề bài sẽ chứa ít nhất một kí tự
Kết quả
Gồm một dòng duy nhất chứa một xâu là đề bài

Lời giải 1 :

#include<bits/stdc++.h>
using namespace std;
#define endl "\n"
#define onic ios_base::sync_with_stdio(false); cin.tie(NULL);
#define kairi main()
#define int long long
stack<char> st, st1;
map<int, int> dem;
int32_t kairi{
    onic
    string s;
    cin >> s;
    for (int i = 0; i <s.size(); i++){
        if (s[i] != '<' and s[i] != '>' and s[i] != '-')
            st.push(s[i]);
        if (s[i] == '-' and !st.empty())
            st.pop();
        if (s[i] == '<' and !st.empty()){
            st1.push(st.top());
            st.pop();
        }
        if (s[i] == '>' and !st1.empty()){
            st.push(st1.top());
            st1.pop();
        }
    }
    while (!st.empty()){
        st1.push(st.top());
        st.pop();
    }
    while (!st1.empty()){
        cout << st1.top();
        st1.pop();
    }
}
//K A 8 4 8

Lời giải 2 :

`\color{red}{\text{@hoangduy67}}`

#include<bits/stdc++.h>
using namespace std;
#define fastIO ios_base::sync_with_stdio(false); cin.tie(nullptr);
int main()
{
    fastIO;
    string s;
    cin>>s;
    stack<char> s_left, s_right;
    for(char c : s)
    {
        if(c == '<')
        {
            if(!s_left.empty())
            {
                char ch=s_left.top();
                s_left.pop();
                s_right.push(ch);
            }
            continue;
        }
        if(c == '>')
        {
            if(!s_right.empty())
            {
                char ch=s_right.top();
                s_right.pop();
                s_left.push(ch);
            }
            continue;
        }
        if(c == '-')
        {
            if(!s_left.empty()) s_left.pop();
            continue;
        }
        s_left.push(c);
    }
    char ans[1000005];
    int n=s_left.size();
    int ti=n;
    while(!s_left.empty())
    {
        ans[ti--]=s_left.top();
        s_left.pop();
    }
    ti=n;
    while(!s_right.empty())
    {
        ans[++ti]=s_right.top();
        s_right.pop();
    }
    for(int i=1; i<=ti; i++) cout<<ans[i];
    return 0;
}

Bạn có biết?

Tin học là một ngành khoa học chuyên nghiên cứu quá trình tự động hóa việc tổ chức, lưu trữ, xử lý và truyền dẫn thông tin của một hệ thống máy tính cụ thể hoặc trừu tượng. Tin học bao hàm tất cả các nghiên cứu và kỹ thuật có liên quan đến việc mô phỏng, biến đổi và tái tạo thông tin. Hãy tận dụng sức mạnh của tin học để giải quyết các vấn đề và sáng tạo ra những giải pháp mới!

Nguồn :

Wikipedia - Bách khoa toàn thư

Tâm sự lớp 8

Lớp 8 - Năm thứ ba ở cấp trung học cơ sở, học tập bắt đầu nặng dần và sang năm lại là năm cuối cấp, áp lực lớn dần. Hãy chú ý đến sức khỏe, cân bằng giữa học và nghỉ ngơi để đạt hiệu quả tốt nhất!

Nguồn :

sưu tập

Liên hệ hợp tác hoặc quảng cáo: gmail

Điều khoản dịch vụ

Copyright © 2021 HOCTAPSGK