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

poj 1539 Evaluating Simple C ...

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

poj 1539 Evaluating Simple C ...

#include <iostream>  #include <string>  #include <ctype.h>  using namespace std;  struct Map {      int v;      int flag;  };  Map map[256];  int len;  //初始化  void init() {      for(int i = 0; i < 26; i++) {          map[i + 'a'].v = i+1;          map[i + 'a'].flag = 0;       }  }  void solve(string tmp,int pos,int ∑) {      int i = pos-1; //查找字母前一个字符      if( i >= 0 && tmp[i] == tmp[i-1]) { //前缀为--或者++          if(tmp[i] == '-') //前缀先做自增加或自减   --map[tmp[pos]].v;          else   ++map[tmp[pos]].v;          i -= 2; //将位置向前移动两位,查找前缀之前的符号,如果是减法就减去相应的值,否则增加          if(tmp[i] == '-') {   sum -= map[tmp[pos]].v;          }          else {   sum += map[tmp[pos]].v;          }      }      else { //判断中缀          if(tmp[i] == '-') {   sum -= map[tmp[pos]].v;          }          else {   sum += map[tmp[pos]].v;          }      }      i = pos+1; //判断后缀,如果是后缀就先自增加再运算      if( i+1 < len && tmp[i] == tmp[i+1]) {          if(tmp[i] == '-') {   --map[tmp[pos]].v;          }          else {   ++map[tmp[pos]].v;          }      }  }  int main() {      string str;       while(getline(cin,str)) {          cout << "expression: " <<str<<endl;          string tmp;          init();len = str.size();          //去掉多余的括号          for (int i = 0; i < len; i++) {   if(str[i] != ' ') {       tmp += str[i];   }          }          int sum = 0; //保存最后的总值          len = tmp.size();          for(int i = 0; i < len; i++) {   if( isalpha(tmp[i]) ) {       map[tmp[i]].flag = 1; //标记该字母已经被使用过       solve(tmp,i,sum);   //解决函数   }          }          cout<<"    value = "<<sum<<endl; //输出sum的值          for(int i = 0; i < 26; i++) { //输出每个元素的值   if(map[i + 'a'].flag != 0) {       cout<<"    "<<(char)(i + 'a') << " = "<<map[i + 'a'].v <<endl;   }          }      }      return 0;  }
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/371284.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

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

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