【发布时间】:2017-04-24 13:01:40
【问题描述】:
请帮我解决以下转换 spoj here is the link 表达式的问题。它给出了运行时错误。
#include <iostream>
#include <stack>
#include <string>
using namespace std;
int main()
{
int testcases;
cin >> testcases;
while(testcases-->0)
{
string s;
cin >> s;
cout << s;
stack<string> st;
for(int i=0;i<s.length();i++)
{
if(s.at(i)=='(')
continue;
else
if(s.at(i)==')')
{
string s2=st.top();
st.pop();
string expression=st.top();
st.pop();
string s1=st.top();
st.pop();
string tba=s1+s2+expression+"";
st.push(tba);
cout << tba << endl ;
}
else
st.push(s.at(i)+"");
}
string ss=st.top();
cout << ss;
}
}
而且即将出现的错误是无法理解的。 以下是第一行和第二行输入的错误。
1
(a+(b*c))
(a+(b*c))do relocation protocol version %d.
o relocation protocol version %d.
uery failed for %d bytes at address %p
udo relocation protocol version %d.
do relocation protocol version %d.
o relocation protocol version %d.
uery failed for %d bytes at address %pery failed for %d bytes at address %p
udo relocation protocol version %d.
do relocation protocol version %d.
o relocation protocol version %d.
uery failed for %d bytes at address %pery failed for %d bytes at address %p
【问题讨论】:
-
你想做什么?预期的输出/输入是什么?尽可能准确地描述您的问题。目前这个问题可能应该被关闭。
-
问题陈述是:spoj.com/problems/ONP
-
检查程序的输入测试用例
"()"。还要检查这些:如果堆栈为空并且您尝试访问top()怎么办?top()会在空堆栈上返回什么? -
s.at(i)+""并没有按照你的想法去做。
标签: c++ stack protocols relocation