UVA - 327 Evaluating Simple C Expressions
来源:互联网 发布:下载淘宝供销平台 编辑:程序博客网 时间:2024/06/01 07:42
题目大意:给你一系列的表达式,要求计算结果和输出表达式的字母的最后的值是多少
解题思路:用map来表示想对应的字母和值,每读取一个字母就给其赋值,然后在根据前缀和后缀的++和--进行值的改变,注意,第一次出现的字母和第二次出现的字母的值有可能不一样,比如++b-c+b,地一个b最后会变成3,但第二个b还是2,在做加法的时候b还是得用2带入,而不是3,因此b已经是最新的了,最后的答案b还是2,以前不知道,以为是3呢,结果一直W了,要记得把空格都给跳过
#include<cstdio>#include<cstring>#include<map>using namespace std;int main() {char str[1000];int num[26];for(int i = 0; i < 26; i++)num[i] = i + 1;while(gets(str)) {map<char,int>res;map<char,int>cur;int len = strlen(str);int sum = 0;for(int i = 0; i < len; i++) {if(str[i] >= 'a' && str[i] <= 'z') {res[str[i]] = num[str[i]-'a'];cur[str[i]] = num[str[i]-'a'];int j = i - 1, k = i + 1;while(j > 0 && str[j] == ' ') j--;while(k < len && str[k] == ' ') k++;if(j - 1 >= 0 && str[j] == str[j-1]) {if(str[j] == '+') {res[str[i]]++;cur[str[i]]++;}else {res[str[i]]--;cur[str[i]]--;}j = j - 2;}else if(k + 1 < len && str[k] == str[k+1]) {if(str[k] == '+')res[str[i]]++;elseres[str[i]]--;}while(str[j] == ' ' && j > 0)j--;if(j <= 0) sum = sum + cur[str[i]];else if(str[j] == '-') sum = sum - cur[str[i]];else sum = sum + cur[str[i]];}}printf("Expression: %s\n", str);printf(" value = %d\n",sum);map<char, int>::iterator it = res.begin();for(it; it != res.end();it++)printf(" %c = %d\n",it->first, it->second);}}
0 0
- 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
- 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
- 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
- UVA 327 Evaluating Simple C Expressions
- UVA - 327 Evaluating Simple C Expressions
- UVA 327 - Evaluating Simple C Expressions
- libcurl多线程下载开发过程中需要注意的一个问题
- Android 系统属性SystemProperty分析
- 关于Xcode6编译Pods工程出错问题
- 第一次写博客
- error: No resource identifier found for attribute ‘XXXXXX’ in package
- UVA - 327 Evaluating Simple C Expressions
- 非IDE环境下开发安卓项目
- about mutil-threads
- Spine(2D骨骼动画)
- 线性表的相关操作 数据结构实验报告第二个
- Framework层Ril控制流程分析
- 目标黑马,我的自学之路:第六章 多线程
- 动态规划方法求解最长公共子串
- 【巧妙算法系列】【Uva 11464】 - Even Parity 偶数矩阵