当前位置: 代码迷 >> 综合 >> HDU 1062(栈实现)
  详细解决方案

HDU 1062(栈实现)

热度:31   发布时间:2024-01-24 23:53:04.0

栈和stack应用
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1062
翻转字符串。

样例输入:
3
olleh !dlrow
m’I morf .udh
I ekil .mca
样例输出:
hello world!
I’m from hdu.
I like acm.

思路:
当读取到空格和换行时,需将其之前存入栈的字符打印出来,未读取到空格和换行时,将其压入栈中。

#include<bits/stdc++.h> 
#include<stack>
using namespace std;
int main(){int n;char ch;cin>>n;getchar();while(n--){stack<char>s;		//定义栈while(1){ch=getchar();		//一次读入一个字符if(ch == ' '||ch =='\n'){while(!s.empty()){	//检查栈是否为空cout<<s.top(); //输出栈顶;s.pop();  //清除栈顶; 出栈是必须进行两步操作,先top再pop}if(ch=='\n')break;cout<<" "; }elses.push(ch);   //放入栈顶; }cout<<endl; }return 0;
}