有一个测试点过不了,希望大家指点。
/*
* 1.cpp
*
* Created on: 2017年8月23日
* Author: Administrator
*/
#include <bits/stdc++.h>
using namespace std ;
int main()
{
string s;
cin>>s;
stack<char> st;
bool flag = false;
for( int i = 0; i < s.length()&&s.length()<=20; i++){
// 负数情况
if( i == 0 && s[i] == '-'){
cout<<s[i];
}
// 多位数及小数
else if(isdigit(s[i])||s[i]=='.')
{
if(i>0&&(isdigit(s[i-1])||s[i-1]=='.')){
cout<<s[i];
}
else if(!flag){
flag = true;
cout<<s[i];
}
else{
cout<<" "<<s[i];
}
}
// 左括号
else if(s[i]=='('){
st.push(s[i]);
}
// 右括号
else if(s[i]==')'){
while(st.top()!='('){
if(!flag)
{
flag = true;
cout<<st.top();
}
else