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

poj 1684 Dynamic Declaration ...

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

poj 1684 Dynamic Declaration ...

#include <iostream>#include <string>#include <map>using namespace std;int ca,T,n,x,y;char state[105][50],op[50],tmp[50],tmp2[50],id;map<char,int> hash;map<char,int> value;inline void init(){    hash.clear();    value.clear();}void Toupper(char *str){    int i;    for(i=0;i<strlen(str);i++){        if('a'<=str[i]&&str[i]<='z'){ str[i]=str[i]-'a'+'A';        }    }}int Toint(char *str){    if(strcmp(str,"DEC")==0)    return -1;    if(strcmp(str,"INC")==0)    return 1;    int i,sum=0;    for(i=0;i<strlen(str);i++){        sum*=10;        sum+=str[i]-'0';    }    return sum;}int main(){    scanf("%d",&T);    while(T--){        printf("%dn",++ca);        scanf("%d",&n);        int i,j;        scanf("n");        for(i=1;i<=n;i++){ gets(state[i]);        }        init();        for(i=1;i<n;i++){ sscanf(state[i],"%s%s",&op,&tmp); Toupper(op); Toupper(tmp); if(strcmp(op,"DCL")==0){     sscanf(state[i],"%s%s",&op,&tmp);     id=tmp[0];     if(hash.find(id)==hash.end()){         hash[id]=0;         value[id]=0;     }     else{         if(hash[id]==0){  printf("%d 1n",i);         }         else{  hash[id]=0;  value[id]=0;         }     } } else if(strcmp(tmp,"=")==0){     sscanf(state[i],"%s%s%s",&op,&tmp,&tmp2);     id=op[0];     if(hash.find(id)==hash.end()){         printf("%d 2n",i);     }     else{         hash[id]++;         value[id]=Toint(tmp2);     } } else if(strcmp(op,"INC")==0||strcmp(op,"DEC")==0){     sscanf(state[i],"%s%s",&op,&tmp);     id=tmp[0];     if(hash.find(id)==hash.end()){         printf("%d 2n",i);     }     else{         hash[id]++;         value[id]+=Toint(op);     } } else if(strcmp(op,"GOTO")==0){     sscanf(state[i],"%s%s",&op,&tmp);     id=tmp[0];     if(('A'<=id&&id<='Z')||('a'<=id&&id<='z')){         sscanf(state[i],"%s%s%s",&op,&tmp,&tmp2);         if(hash.find(id)!=hash.end()){  hash[id]++;  if(value[id]>0){      i=Toint(tmp2)-1;  }         }         else{  printf("%d 2n",i);         }     }     else{         i=Toint(tmp)-1;     } }        }    }    return 0;}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/376548.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

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

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