【链接】 我是链接,点我呀:)

【题意】

在这里输入题意

【题解】

把所有的问号都改成'1'
然后会发现只有+0?这种情况
需要把?改成+.
看看这样的0后面的1是不是由问号改过来的就好了。是的话
再把这个1变成'+'就好。
判断一下首尾有符号的情况。
以及连续两个出现符号的情况。

【代码】

#include <bits/stdc++.h>
#define LL long long
#define rep1(i,a,b) for (int i = a;i <= b;i++)
#define rep2(i,a,b) for (int i = a;i >= b;i--)
#define all(x) x.begin(),x.end()
#define pb push_back
#define lson l,mid,rt<<1
#define rei(x) scanf("%d",&x)
#define rel(x) scanf("%lld",&x)
#define res(x) scanf("%s",x)
#define rson mid+1,r,rt<<1|1
using namespace std; const double pi = acos(-1);
const int dx[4] = {0,0,1,-1};
const int dy[4] = {1,-1,0,0}; const int N = 1e5;
bool flag[1000];
string s; bool issign(char key){
if (key=='+' || key=='*') return true;
return false;
} bool isnumber(char key){
if (key>='0' && key<='9')
return true;
return false;
} bool ok(){
memset(flag,0,sizeof flag);
int len = s.size();
for (int i = 0;i < len;i++)
if (s[i]=='?')
flag[i] = 1;
for (int i = 0;i < len;i++)
if (s[i]=='?')
s[i] = '1';
for (int i = 0;i < len;i++){
if (s[i]=='0' && (i==0 || !isnumber(s[i-1])) && i<len-1 && isnumber(s[i+1])){
//s[i]是一个前导0
if (!flag[i+1]) return false;
s[i+1] = '+';
} }
if (issign(s[0]) || issign(s[len-1])) return false;
for (int i = 0;i < len-1;i++)
if (issign(s[i]) && issign(s[i+1]))
return false;
return true;
} int main(){
#ifdef LOCAL_DEFINE
freopen("rush_in.txt", "r", stdin);
//freopen("D:\\out.txt","w",stdout);
#endif
ios::sync_with_stdio(0),cin.tie(0);
int T;
cin >> T;
while (T--){
cin >> s;
if (!ok()){
cout<<"IMPOSSIBLE"<<endl;
}else{
cout<<s<<endl;
}
}
return 0;
}

最新文章

  1. Atitit.软件兼容性原理与实践 v5 qa2.docx
  2. java第三周学习
  3. 使用ASP.NET 4的自动启动特性,解决ASP.NET第一次访问速度慢问题
  4. TableView的执行流程 &amp; 位移枚举
  5. POJ 1041问题描述
  6. Android 常用UI控件之Tab控件的实现方案
  7. MySQL源码 优化器
  8. Android设备内存和SD卡操作工具类
  9. 大数加法之C语言函数法(只有正数版)
  10. sql server 备份与恢复系列一 必备知识
  11. backup是个相对论
  12. 腾讯X5WebView集成及在移动端中使用
  13. Python-str-操作-6
  14. 洛谷 P1452 Beauty Contest 解题报告
  15. 从网上找的Android实用代码,记录备用
  16. PAT 1008 数组元素循环右移问题 (20)(代码)
  17. MySQL的order by时区分大小写
  18. 总有一些实用javascript的元素被人遗忘在角落-slice
  19. vue基础——列表渲染
  20. (转)SpringBoot非官方教程 | 第十二篇:springboot集成apidoc

热门文章

  1. event.currentTarget与event.target的差别介绍
  2. Errors occurred during the build. Errors running builder &amp;#39;Integrated External Tool Builder&amp;#39; on proje
  3. UVA - 11077 Find the Permutations (置换)
  4. Linux命令(六)——软件包管理(安装应用程序)
  5. int、bigint、smallint 和 tinyint范围
  6. Hadoop-2.2.0中文文档——Apache Hadoop 下一代 MapReduce (YARN)
  7. Github 基本使用
  8. declare-styleable的使用
  9. EM算法——有隐含变量时,极大似然用梯度法搞不定只好来猜隐含变量期望值求max值了
  10. B1970 [Ahoi2005]Code 矿藏编码 暴力模拟