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;
    }
  • 相关阅读:
    dubbo
    常见线程池
    面试之葵花宝典
    Java线程池
    DB2分页
    平凡
    自由职业一时爽,一直自由一直爽
    弱水三千,只取一瓢。
    没病到一定程度,你千万别去。
    一个转身一个轮回
  • 原文地址:https://www.cnblogs.com/secoding/p/9532521.html
Copyright © 2011-2022 走看看