D题求解

#include <bits/stdc++.h>
using namespace std;

const int N = 2e5 + 50;
struct Node{
    char ch;
    int left,right;
}a[N];

int main(){
    ios::sync_with_stdio(false);
    cin.tie(nullptr);

    int n,k,m;
    cin >> n >> k;
    for(int i = 1;i <= n;i++){
        cin >> a[i].ch;
        if(a[i].ch == 'I') m = i;
        a[i].left = i - 1;
        a[i].right = i + 1;
    }
    while(k--){
        string s;
        cin >> s;
        if(s == "backspace"){
            if(m > 1){
                if(a[a[m].left].ch == '(' && a[a[m].right].ch == ')'){
                    a[a[m].left].ch = '0',a[a[m].right].ch = '0';
                    a[m].left = a[a[m].left].left;
                    a[m].right = a[a[m].right].right;
                    a[a[m].left].right = m;
                    a[a[m].right].left = m;
                }
                else{
                    a[a[m].left].ch = '0';
                    a[m].left = a[a[m].left].left;
                    a[a[m].left].right = m;
                }
            }
        }
        if(s == "delete"){
            if(m < n){
                a[a[m].right].ch = '0';
                a[m].right = a[a[m].right].right;
                a[a[m].right].left = m;
            }
        }
        if(s == "<-"){
            if(m > 1){
                a[m].ch = a[a[m].left].ch;
                a[a[m].left].ch = 'I';
                m = a[m].left;
            }
        }
        if(s == "->"){
            if(m < n){
                a[m].ch = a[a[m].right].ch;
                a[a[m].right].ch = 'I';
                m = a[m].right;
            }
        }
    }
    for(int i = 1;i <= n;i++){
        if(a[i].ch != '0') cout << a[i].ch;
    }
    // cout << "\n\n";
    // for(int i = 1;i <= n;i++){
    //     cout << i << " " << a[i].ch << " " << a[i].left << " " << a[i].right << "\n";
    // }


    return 0;
}

left和right记录下标 为什么只有五十的正确率

全部评论
看上去是双向链表做法,题解中给了一个双向链表的代码,可以照着它调
点赞 回复 分享
发布于 2024-02-19 11:25 陕西

相关推荐

彧未sr:查看图片
投递牧原集团等公司10个岗位
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务