zoukankan      html  css  js  c++  java
  • 悲剧文本(Broken Keyboard (a.k.a. Beiju Text),UVA 11988)

    题目描述:

    题目思路:

    1.使用链表来重新定位各个字符

    2.用数组实现链表

    3.开一个数组list[i]来存储字符数组下一个字符的位置

    #include <iostream>
    #include <cstring>
    using namespace std;
    
    const int maxn = 100000 + 5;
    int last,cur,list[maxn] ;
    char s[maxn] ;
    int main(int argc, char *argv[])
    {
        while(scanf("%s",s+1) == 1)
        {
            int len = strlen(s+1);
            last = cur = 0;
            list[0] = 0; //指示位置的链表 
            
            for(int i = 1;i <= len ;i++)
            {
                char ch = s[i] ;
                if(ch == '[') cur = 0;
                else if(ch == ']') cur = last ;
                else{
                    list[i] = list[cur] ; //光标跳转,指示开头 
                    list[cur] = i;
                    if(cur == last) last = i ;
                    cur = i ; 
                }
            } 
            for(int i = list[0]; i != 0;i = list[i])
                printf("%c",s[i]);
            cout << endl ;
        }
        return 0;
    }
  • 相关阅读:
    iOS刨根问底-深入理解RunLoop
    深入理解RunLoop
    Core Graphics框架 利用Quartz 2D绘图
    经济
    次贷危机的原因
    次级抵押贷款
    信用评级
    信用
    理解UIView的绘制-孙亚洲
    二级域名
  • 原文地址:https://www.cnblogs.com/secoding/p/9532521.html
Copyright © 2011-2022 走看看