zoukankan      html  css  js  c++  java
  • UVA11988 【Broken Keyboard (a.k.a. Beiju Text)】:题解

    题目链接:https://www.luogu.org/problemnew/show/UVA11988

    这题虽说是和链表有关的模拟,但其实并不是很需要啊,但蒟蒻用了(说的好听是练手,说的难听是太弱),效果海星。

    分析:

    此题模拟即可,本人估计难度大概提高-,可以直接数组模拟,也可以用链表存储。主要是每组数据有多组输入,所以读入的方法可以多加注意,我的这种方法海星(这么有自信是因为是跟大佬学的),然后灵活运用for语言即可。

    其他在代码中说明。

    代码:

    #include<iostream>  
    #include<cstdio>  
    #include<cmath>  
    using namespace std;  
    char s[100005];  
    int Next[100005];  
    int main()  
    {  
        int cur,last;  
        while(~scanf("%s",s+1)) //s+1即读入的s字符串下标从1开始(强迫症患者)
        {  
            cur=last=0;  
            Next[0]=0;//初始化
            for(int i=1;s[i]!='';i++)  //中间的判断语句意为没有到字符串的结束标志——,说白了就是穷尽整个字符串
            {  
                char QAQ=s[i];  //QAQ
                if(QAQ=='[') cur=0;
                else if(QAQ==']') cur=last;//如果跳到开头了,那就把cur弄成最头上,如果又回来了,那同理到末尾
                else  
                {  
                    Next[i]=Next[cur];  
                    Next[cur]=i;
                    if(last==cur) last=i;  
                    cur=i;
                }  //链表存储
            }  
            for(int i=Next[0];i!=0;i=Next[i])  //别致的输出
            {  
                printf("%c",s[i]);  
            }  
            printf("
    ");  //换行别忘
        }  
        return 0;  
    }  
    完结撒花~
    
  • 相关阅读:
    [CF1166E] The LCMs Must be Large
    AtCoder Beginner Contest 161
    [CF1168B] Good Triple
    [CF1172B] Nauuo and Circle
    [CF1185E] Polycarp and Snakes
    [CF1187E] Tree Painting
    Codeforces Round #631 (Div. 2)
    [CF1200E] Compress Words
    Thinkphp绕过宝塔getshell
    如何成为一个漏洞赏金猎人
  • 原文地址:https://www.cnblogs.com/vercont/p/10210041.html
Copyright © 2011-2022 走看看