栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

zoj 1477 File Compression

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

zoj 1477 File Compression

#include<deque>#include<queue>#include<list>#include<vector>#include<iostream>#include<queue>#include<cstdio>#include<cctype>#include<string.h> #include<map>#include<algorithm>#include<stdlib.h>using namespace std;enum {    SIZ = 108,    ALP = 256,};int     num;int     next[ALP];  int     ptr[SIZ];  char    str[SIZ];  char    out[SIZ];void enpre(){    int v, i, t;        for(i=num-1; i>=0; i--){        v = str[i];        ptr[i] = next[v];        next[v] = i;    }        for(i=0, t=0; i<ALP; i++){        for(v=next[i]; v>=0; v = ptr[v]){ out[t++] = v==0?str[num-1]:str[v-1];         }    }    out[t] = 0;    printf("%sn", out);}void depre(){    int v, i, t;    out[0] = str[--num];    out[num] = str[num] = 0;    for(i=0; i<num; i++){        v = str[i];        ptr[i] = next[v];        next[v] = i;    }    static int tail[ALP];    static int head[ALP];    t = 0;    for(i=0; i<ALP; i++){        head[i] = t;        for(v=next[i]; v>=0; v=ptr[v]){ t++;        }        tail[i] = t-1;    }        for(i=num-1; i>0; i--){        t = i==num-1?0:i+1;        t = out[t];        if(i == num-1){ out[i] = str[head[t]++];        } else { out[i] = str[tail[t]--];        }    }    printf("%sn", out);}void fun(){    char c = str[0];    scanf("%s", str);    num = (int)strlen(str);    memset(next, -1, sizeof(next));        if(c == 'e'){          enpre();    } else {depre();    }}int main(){    while( scanf("%s", str) > 0){        fun();    }return 0;}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/372215.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号