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

zoj 1741 Molecular Formula

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

zoj 1741 Molecular Formula

#include<iostream>#include<string.h>#include<map>#include<ctype.h>using namespace std;map<string,int> word_v;int stack[100];int top;int main(){    string name;    int v;    while(1)    {        cin>>name;        if(name.compare("END_OF_FIRST_PART")==0)        break;        cin>>v;        word_v[name]=v;    }    string f;    while(1)    {        int sum,top=0,unknow=0;        memset(stack,0,sizeof(stack));        string temp;        cin>>f;        if(f[0]=='0')        return 0;        for(int i=0;i<f.length();i++)        { temp.clear(); if(isupper(f[i])) {     temp+=f[i];     if(i+1<=f.length()-1&&islower(f[i+1]))     {         temp+=f[i+1];         if(word_v[temp]==0)         {  cout<<"UNKNOWN"<<endl;  unknow=1;  break;         }         if(i+2<=f.length()-1&&isdigit(f[i+2]))         {  int number;  if(i+3<=f.length()-1&&isdigit(f[i+3]))  {      number=(f[i+2]-'0')*10+(f[i+3]-'0');  }  else number=f[i+2]-'0';  stack[++top]=word_v[temp]*number;  i+=2;  continue;         }         stack[++top]=word_v[temp];         ++i;         continue;     }     if(word_v[temp]==0)         {  cout<<"UNKNOWN"<<endl;  unknow=1;  break;         }     if(i+1<=f.length()-1&&isdigit(f[i+1]))         {  int number;  if(i+2<=f.length()-1&&isdigit(f[i+2]))  {      number=(f[i+1]-'0')*10+(f[i+2]-'0');  }  else number=f[i+1]-'0';  stack[++top]=word_v[temp]*number;  ++i;  continue;         }         stack[++top]=word_v[temp]; } else if(f[i]=='(') {     stack[++top]=-2; } else if(f[i]==')') {     int tempsum=0;     int number=f[i+1]-'0';     while(stack[top]!=-2)     {         tempsum+=stack[top];         --top;     }     if(i+2<=f.length()-1&&isdigit(f[i+2]))     number=(f[i+1]-'0')*10+(f[i+2]-'0');     tempsum=tempsum*number;     stack[top]=tempsum;     ++i; }        }        if(!unknow)        { int an=0; for(int i=0;i<=top;i++)     an+=stack[i]; cout<<an<<endl;        }    }    return 0;}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/366378.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

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

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