/*
zoj 3829
题目大概是
给你一个没有空格的字符串
问经过添加1-9和*以及交换两个字符
需要经过几步成为一个逆波兰表达式
首先要知道
当两个数字到一起时 如 12
可以看成1和2也可以看成12
所以只有当*数+1>数字数时才需要增加数字
不存在需要增加*的情况
经过增加后
*数+1==数字数
每个*之前都要满足*数+1<数字数
当不满足时需要交换
交换就是把当前所记录的*数-1
数字数+1就行
*/
#include<iostream>
#include<algorithm>
#include<string.h>
#include<string>
#include<stdio.h>
#include<math.h>
#define ll long long
#define INF 2147483647
#define N 50
#define PI acos(-1)
#define EPS 1e-8
using namespace std;
int main()
{
int t;
cin>>t;
while(t--)
{
char s[1005];
memset(s,'\0',sizeof(s));
cin>>s;
int num1=0,star1=0;
int len=strlen(s);
for(int i=0;i<len;i++)
{
if(s[i]=='*')
star1++;
else
num1++;
}
int ans=star1+1-num1;
if(ans<0)
ans=0;
int num2=ans,star2=0;
for(int i=0;i<len;i++)
{
if(s[i]=='*')
star2++;
else
num2++;
if(star2+1-num2>0)
{
star2--;
num2++;
ans++;
}
}
cout<<ans<<endl;
}
return 0;
}
zoj 3829
题目大概是
给你一个没有空格的字符串
问经过添加1-9和*以及交换两个字符
需要经过几步成为一个逆波兰表达式
首先要知道
当两个数字到一起时 如 12
可以看成1和2也可以看成12
所以只有当*数+1>数字数时才需要增加数字
不存在需要增加*的情况
经过增加后
*数+1==数字数
每个*之前都要满足*数+1<数字数
当不满足时需要交换
交换就是把当前所记录的*数-1
数字数+1就行
*/
#include<iostream>
#include<algorithm>
#include<string.h>
#include<string>
#include<stdio.h>
#include<math.h>
#define ll long long
#define INF 2147483647
#define N 50
#define PI acos(-1)
#define EPS 1e-8
using namespace std;
int main()
{
int t;
cin>>t;
while(t--)
{
char s[1005];
memset(s,'\0',sizeof(s));
cin>>s;
int num1=0,star1=0;
int len=strlen(s);
for(int i=0;i<len;i++)
{
if(s[i]=='*')
star1++;
else
num1++;
}
int ans=star1+1-num1;
if(ans<0)
ans=0;
int num2=ans,star2=0;
for(int i=0;i<len;i++)
{
if(s[i]=='*')
star2++;
else
num2++;
if(star2+1-num2>0)
{
star2--;
num2++;
ans++;
}
}
cout<<ans<<endl;
}
return 0;
}