- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我是解决问题的新手。我正在解决 UVA 中一个名为“表达”的问题。我认为我已经解决了问题,因为我的代码为每个可能的测试用例提供了正确的输出。但我仍然得到了 WA。似乎我在某个地方打印了一个换行符,但我做得不正确。问题是“输出文件将每个后缀表达式都放在一行上。在不同表达式之间打印一个空行。”有人可以向我解释一下吗?我在群里问过这个问题,但没有得到答案。而且之前的讨论也没有帮助。提前致谢。
#include<iostream>
#include<map>
#include<stack>
#include<vector>
#include<cstdio>
using namespace std;
void push_into_stack(char c, vector< char > &ans, stack< char > &st);
void work_with_stack(vector< char > &ans, stack< char > &st);
int main(void)
{
freopen("input.txt", "r", stdin);
int t;
char dummy;
cin >> t;
for(int i=1; i<=t; i++)
{
vector< char > exp, ans;
stack< char > st;
char c;
while(cin >> c)
exp.push_back(c);
for(int i=0; i<exp.size(); i++)
if(exp[i]=='+' || exp[i]=='-' || exp[i]=='*' || exp[i]=='/') push_into_stack(exp[i], ans, st);
else if(exp[i]=='(') st.push(exp[i]);
else if(exp[i]==')') work_with_stack(ans, st);
else ans.push_back(exp[i]);
while(!st.empty())
{
ans.push_back(st.top());
st.pop();
}
for(int i=0; i<ans.size(); i++)
cout << ans[i];
cout << endl;
}
return 0;
}
void push_into_stack(char c, vector< char > &ans, stack< char > &st)
{
map< char, int > mp;
mp['/']=2;
mp['*']=2;
mp['+']=1;
mp['-']=1;
while(true)
{
if(!st.empty() && mp[c]<=mp[st.top()])
{
ans.push_back(st.top());
st.pop();
}
else
{
st.push(c);
break;
}
}
return;
}
void work_with_stack(vector< char > &ans, stack< char > &st)
{
while(true)
{
if(st.top()=='(') break;
ans.push_back(st.top());
st.pop();
}
st.pop();
return;
}
最佳答案
嗯...我想答案的质量只能反射(reflect)问题的质量...但是怎么样:
int main(void) {
char postfixone[] = "4 5 7 2 + - * -16";
char postfixtwo[] = "3 4 + 2 * 7 / 2";
char postfixthree[] = "5 7 + 6 2 - * 48";
printf("%s\n\n",postfixone);
printf("%s\n\n",postfixtwo);
printf("%s\n\n",postfixthree);
}
mike@linux-4puc:~> ./a.out
4 5 7 2 + - * -16
3 4 + 2 * 7 / 2
5 7 + 6 2 - * 48
每个都占一行,中间有一个新行...
编辑:我猜您正在使用 C++ 并在此处打印这些行:
for(int i=0; i<ans.size(); i++)
cout << ans[i];
cout << endl;
您要使用 endl 为每个后缀打印一个新行,请尝试:
cout << endl << endl;
而是在行之间插入额外的空白。
关于c++ - 我很难打印换行符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12571867/
关闭。此题需要details or clarity 。目前不接受答案。 想要改进这个问题吗?通过 editing this post 添加详细信息并澄清问题. 已关闭 9 年前。 Improve th
我有一个带有输入字段的表单,使用javascript,当用户输入超过2个字符时,它会在第一个输入字段下方创建相同的输入字段。其代码是: Optie 1: 1 && treated[this.na
这是我的: char userInput; int position; vector userVector(7); vector someVector(7,1); cin >> userInput;
尝试使用 typescript 和 redux 构建一个简单的 react crud 应用程序并遇到以下问题。我有一个具有指定签名的函数,它将一个人对象作为参数,如此处所示。 export defau
哦,我多么希望 TCP 像 UDP 一样基于数据包! [查看评论] 但是,唉,事实并非如此,所以我正在尝试实现我自己的数据包层。这是到目前为止的事件链(忽略写入数据包) 哦,我的数据包结构非常简单:两
我想在我的页面底部放置一个包含不同数量图片的栏,这些图片(如果比页面宽)可以左右滚动。 页面宽度在变化,我希望 Pane 的宽度为 100%。 我试图通过让中间的 div 溢出并使用 jquery.a
我曾尝试在工作时将我的 Rails 应用程序 bundle 到我的 Mac 上。在家里它运行良好,我之前已经设法自己解决了它,但这次无论我尝试什么似乎都无法解决它。 我在运行 bundle/bundl
所以我有一个旧的网络表单站点,并且正在努力使其更易于维护。把它扔掉并重写它不是一种选择。 IoC 显然是它首先得到的东西之一,但这给我留下了服务定位器模式和糟糕的品味,并且想知道它是否可以做得更好。
我是一名优秀的程序员,十分优秀!