poj 1539 Evaluating Simple C Expressions
来源:互联网 发布:阿里云客服怎么选班 编辑:程序博客网 时间:2024/05/22 22:31
虽然划分在数据结构里,但感觉什么都没用到。
简单的字符串处理罢了。
最后计算的时候把++,--都去掉。
用一个数组a[27]保存字母的值。
easy
#include <iostream>#include <cstdio>#include <fstream>#include <cstring>#include <string.h>#include <stack>using namespace std;void strip(char *p){ int cnt=0; char *temp=p; char new_char[100]; while(*p){ if(*p!=' '){new_char[cnt++]=*p;} p++; } strcpy(temp+2,new_char); temp[cnt+2]='!';temp[cnt+3]='!'; temp[cnt+4]='\0'; temp[0]='!';temp[1]='!';}int calculate(char *p){ int num=0,add; while(*p){ if(*p>='a'&&*p<='z') { add = *p-'a'+1; if(*(p-1)=='-') { add=-add; } num+=add; } p++; } return num;}void function(char *p){ bool flag[30]; int num[30],cnt=1; char calcu[100],s; memset(flag,0,sizeof(flag)); while(*p){ if(*p>='a'&&*p<='z') { flag[*p-'a'+1]=1; num[*p-'a'+1]=*p-'a'+1; if(*(p-1)=='+'&&*(p-2)=='+') { calcu[cnt++]=*p+1; num[*p-'a'+1]+=1; } else if(*(p-1)=='-'&&*(p-2)=='-') { calcu[cnt++]=*p-1; num[*p-'a'+1]-=1; } else if(*(p+1)=='+'&&*(p+2)=='+') { calcu[cnt++]=*p; num[*p-'a'+1]+=1; } else if(*(p+1)=='-'&&*(p+2)=='-') { calcu[cnt++]=*p; num[*p-'a'+1]-=1; } else{ calcu[cnt++]=*p; } } else if(*p=='+') { if(*(p-1)!='+'&&*(p+1)!='+') { calcu[cnt++]=*p; } } else if(*p=='-') { if(*(p-1)!='-'&&*(p+1)!='-') { calcu[cnt++]=*p; } } p++; } calcu[cnt]='\0'; calcu[0]='+'; cout<<" value = "<<calculate(calcu)<<endl; for(int i=0;i<30;i++) { if(flag[i]){ s='a'+i-1; cout<<" "<<s<<" = "<<num[i]<<endl; } }}int main(){ //ifstream cin("ha.txt"); char senten[100]; while(cin.getline(senten,100)&&strlen(senten)) { cout<<"Expression: "<<senten<<endl; strip(senten); //cout<<senten<<endl; function(senten); }}
0 0
- poj 1539 Evaluating Simple C Expressions
- POJ 1539 UVA 327 Evaluating Simple C Expressions
- Evaluating Simple C Expressions
- 327 - Evaluating Simple C Expressions
- 327 Evaluating Simple C Expressions
- UVA327 - Evaluating Simple C Expressions
- uva_327-Evaluating Simple C Expressions
- UVaOJ327---Evaluating Simple C Expressions
- 327 - Evaluating Simple C Expressions
- UVA327- Evaluating Simple C Expressions
- 327 - Evaluating Simple C Expressions
- 327 - Evaluating Simple C Expressions
- POJ - 1539 Evaluating Simple C Expressions(简单的C表达式)
- UVa 327 Evaluating Simple C Expressions
- UVa 327 - Evaluating Simple C Expressions
- uva 327 - Evaluating Simple C Expressions
- uva 327 - Evaluating Simple C Expressions
- UVa 327 - Evaluating Simple C Expressions
- 获取和设置tinyMCE 4编辑器的内容
- js中join函数的使用方法
- 最简单的MakeFile
- 杭电 1166敌兵布阵(线段树)
- 单片机程序设计中的“分层思想”
- poj 1539 Evaluating Simple C Expressions
- HDU 4893 Wow! Such Sequence! 线段树
- inno setup学习需要掌握的知识点
- spring security 3.1.6 jar包说明
- 黑马程序员-----内部类的访问规则(黑马视频)
- TortoiseGit github 免输用户名密码 Push
- Referenced file contains errors (http://getahead.ltd.uk/dwr/dwr20.dtd).
- 什么是3g(1)
- HDU 1853 Cyclic Tour【最小费用最大流 OR 带权二分图匹配】