4104:单词翻转
-
总时间限制:
- 1000ms 内存限制:
- 65536kB
-
描述
-
输入一个句子(一行),将句子中的每一个单词翻转后输出。
输入
- 只有一行,为一个字符串,不超过500个字符。单词之间以空格隔开。 输出
- 翻转每一个单词后的字符串,单词之间的空格需与原文一致。 样例输入
-
hello world
样例输出
-
olleh dlrow
#include <stdio.h> //未能AC的代码
#include <iostream>
#include <stack>
#include <string.h>
#include <queue>
#include <cmath>
#include <vector>
#include <algorithm>
#include <map>
#include <set>
#include <string>
using namespace std;
typedef long long LL;
#define MAX 1000001
bool cmp(pair<string, int> a, pair<string, int> b) {
if(a.second != b.second) {
return a.second > b.second;
} else {
return a.first < b.first;
}
}
int main() {
//freopen("in.txt", "r", stdin);
//freopen("out.txt", "w", stdout);
string str;
queue<string> q1;
while(cin >> str && str != "\n") {
q1.push(str);
}
int flag = 1;
while(!q1.empty()){
string str = q1.front();
q1.pop();
stack<char> s1;
for(int i = 0; i < str.size(); i++){
s1.push(str[i]);
}
while(!s1.empty()){
cout << s1.top();
s1.pop();
}
if(q1.size() >= 1){
cout << " " ;
}
}
return 0;
}
//AC代码#include <stdio.h>
#include <iostream>
#include <stack>
#include <string.h>
#include <queue>
#include <cmath>
#include <vector>
#include <algorithm>
#include <map>
#include <set>
#include <string>
using namespace std;
typedef long long LL;
#define MAX 1000001
int main() {
//freopen("in.txt", "r", stdin);
//freopen("out.txt", "w", stdout);
string str;
getline(cin, str);
//cout << str << endl;
string t ="";
for(int i = 0; i < str.size(); i++) {
if(str[i] != ' ') {
t += str[i];
//cout << t << endl;
} else{
//一直有错。。。服气。。没看到题目中的 按照 原来的字符格式进行输出,,就是原来的空格有多少 现在输出的也是多少 PE了一下午。。
if(t != ""){
reverse(t.begin(), t.end());
cout << t;
t = "";
}
cout << " ";
}
}
//最后的一个单词 是以换行符结尾的 需要单独逆转输出一下
reverse(t.begin(), t.end());
cout << t << endl;
return 0;
}