题目大意:

给定一串只含加减和括号的运算,去掉没用的括号和空白字符输出

这里其实只要去找当前括号前面那个运算符是不是减号,如果是减号且这个括号内出现过运算符说明这个括号应该存在

 #include <cstdio>
#include <cstring>
#include <iostream>
#include <algorithm> using namespace std;
#define N 1010
#define MOD 1000007
#define base 31 char s[N];
char que[N];
int top;
bool flag[N]; void solve()
{
top = ;
for(int i= ; i<strlen(s) ; i++){
que[++top] = s[i];
flag[top] = true;
if(s[i] == ')'){
int cnt = , ch=;//ch记录括号过程中有没有出现过多次运算
for(int j=top ; j> ; j--){
if(que[j]=='(' && flag[j]==true){
cnt--;
if(cnt == ){
int k=j-;
while(k){
if(flag[k]==true&&(que[k]=='('||que[k]=='+'||que[k]=='-')) break;
k--;
}
// cout<<i<<" "<<j<<" "<<k<<endl;
if(ch== || k== ||(k>&&que[k] != '-')) flag[top] = flag[j] = false;
}
}
else if(que[j]==')' && flag[j]==true) cnt++;
else if(que[j]=='+' || que[j]=='-') ch++;
}
}
}
} int main()
{
#ifndef ONLINE_JUDGE
freopen("a.in" , "r" , stdin);
#endif // ONLINE_JUDGE
int n;
while(~scanf("%d" , &n))
{
gets(s);
for(int i= ; i<n ; i++){
gets(s);
solve();
for(int i=;i<=top;i++){
if(que[i] == ' ') continue;
if(flag[i]==true) printf("%c" , que[i]);
}
puts("");
}
}
return ;
}

POJ1690 简单运算去括号的更多相关文章

  1. 51Nod 1684 子集价值 (平方和去括号技巧)

    http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1684 题意: 新建一个位运算,求所有子集通过这个位运算后的答案的平方和是 ...

  2. ACM 16进制的简单运算

    16进制的简单运算 时间限制:1000 ms  |  内存限制:65535 KB 难度:1   描述 现在给你一个16进制的加减法的表达式,要求用8进制输出表达式的结果.   输入 第一行输入一个正整 ...

  3. C#的winform矩阵简单运算

    C#的winform矩阵简单运算 程序截图 关键代码 using System; using System.Collections.Generic; using System.ComponentMod ...

  4. NYOJ--244--16进制的简单运算(C++控制输入输出)

    16进制的简单运算 时间限制:1000 ms  |  内存限制:65535 KB 难度:1   描述 现在给你一个16进制的加减法的表达式,要求用8进制输出表达式的结果.   输入 第一行输入一个正整 ...

  5. Redis 的简单运算

    Redis 的简单运算 命令 说明 备注 incr key 在原字段上加 1 只能对整数操作 incrby key increment 在原字段上加上整数 (increment) 只能对整数操作 de ...

  6. nyoj 244-16进制的简单运算 (scanf("%x%c%x", &a, &b, &c); printf("%o", a ± b))

    244-16进制的简单运算 内存限制:64MB 时间限制:1000ms 特判: No 通过数:12 提交数:13 难度:1 题目描述: 现在给你一个16进制的加减法的表达式,要求用8进制输出表达式的结 ...

  7. python3简单实现支持括号的加减乘除运算

    1.首先表达式的空格. 2.循环计算最内层带括号的表达式(提取运算符出现的顺序,然后计算) 3.计算最外层的表达式输出. 刚接触python,代码不够严谨,仅实现功能.不知道如何在函数中使用运算符变量 ...

  8. 第1阶段冲刺成果—简单运算game(APP)

    第1阶段冲刺成果 由于我们团队都没有Android的基础,所以在这一块花了很长的时间去学习探索,就连简单的Android的电脑配置也花了很长的时间,所以其他的DONE的都没有完成,这是失败的地方.但是 ...

  9. TensorFlow学习笔记2——数据类型及简单运算

    0. 小试牛刀 首先,激活tensorflow环境( source activate tensorflow ),随后在ipython里: import tensorflow as tf sess = ...

随机推荐

  1. Mysql中的索引问题

    索引的用途 提高查询的效率,相当于在字典中建立的字母表或者偏旁部首表,这样查询当然比一行一行查询要快的多 每个存储引擎可以建立索引的长度是不一样的,但每个表至少支持16个索引,总的索引长度至少为256 ...

  2. android开发学习 ------- 【转】EventBus的学习理解

    EventBus是一个Android端优化的publish/subscribe消息总线,简化了应用程序内各组件间.组件与后台线程间的通信. 比如请求网络,等网络返回时通过Handler或Broadca ...

  3. 备忘录模式及php实现

    备忘录模式: 又叫做快照模式或Token模式,在不破坏封闭的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态.这样以后就可将该对象恢复到原先保存的状态. 角色: 1.创建者:负责创建一个备忘 ...

  4. QTP自动FlightReservation小程序,数据库被玩坏了~~~

    1.尝试使用CheckPointOnDataBase功能. 2.选中自带的数据库 3.执行Delete * from Orders; 如下图: 4.再次使用FlightReservation的时候,不 ...

  5. B树、B+树、红黑树、AVL树

    定义及概念 B树 二叉树的深度较大,在查找时会造成I/O读写频繁,查询效率低下,所以引入了多叉树的结构,也就是B树.阶为M的B树具有以下性质: 1.根节点在不为叶子节点的情况下儿子数为 2 ~ M2. ...

  6. 关于maven source1.5报错

    是因为maven 默认是1.5编译的 <build>//加上这个配置,把编译给改掉试试 <pluginManagement> <plugins> <plugi ...

  7. hdu 2192 MagicBuilding

    Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission( ...

  8. nvm、npm、nodejs的关系(转载)

    nvm.npm.nodejs的关系 为什么要了解nvm.npm.nodejs的关系: reactNative的项目构建都是有这几个工具进行构建管理. 掌握他们的关系,就能了解reactNative项目 ...

  9. COM技术开发(一)

    COM :基本的接口(IX,IY), 组件的实现(CA),以及对组件的调用 #include "pch.h" #include <iostream> #include ...

  10. Java sleep方法的作用(sleep())

    sleep() 方法的作用是在指定的毫秒数内让当前“正在执行的线程”休眠(暂停执行).这个“正在执行的线程”是指 this.currentThread() 返回的线程. 例 1 下面通过一个案例来理解 ...