[编程题]句子逆序
2016-12-09 12:51
204 查看
Talk is cheap, show me the code
所有单词之间用一个空格隔开,语句中除了英文字母外,不再包含其他字符
接口说明
/**
* 反转句子
*
* @param sentence 原句子
* @return 反转后的句子
*/
public String reverse(String sentence);
输入描述:
将一个英文语句以单词为单位逆序排放。
输出描述:
得到逆序的句子
输入例子:
I am a boy
输出例子:
boy a am I
一、问题描述
将一个英文语句以单词为单位逆序排放。例如“I am a boy”,逆序排放后为“boy a am I”所有单词之间用一个空格隔开,语句中除了英文字母外,不再包含其他字符
接口说明
/**
* 反转句子
*
* @param sentence 原句子
* @return 反转后的句子
*/
public String reverse(String sentence);
输入描述:
将一个英文语句以单词为单位逆序排放。
输出描述:
得到逆序的句子
输入例子:
I am a boy
输出例子:
boy a am I
二、问题分析
这是文本处理的方法,可以一次读入一行,就相当于一个句子,然后在用stringstream来读取一行中的每个单词,然后再考虑逆序每个单词,这里存放每个单词可以采用多种数据结构,最直观是采用栈stack,也可以用其他的vector,list,deque等等。另一种思路是可以把每个单词作为一个输入,但是这种无法判断句子的结束,只能说每次输入只能输入一个句子,不能同时输入多个句子。#include <iostream> #include <string> #include <sstream> #include <stack> using namespace std; int main() { string s; while (getline(cin, s)) { stack<string> st; istringstream ss(s); string str; while (ss >> str) { st.push(str); } cout << st.top(); st.pop(); while (!st.empty()) { cout << " " << st.top(); st.pop(); } cout << endl; } return 0; }
相关文章推荐
- python编程题-句子的逆序
- 牛客网三道编程题(五) 之华为机试在线训练(四)进制转换、删除重复出现的数字、句子逆序
- 句子中的单词逆序输出和归并排序
- linux 中 句子的逆序“you are from yangzhou”
- 句子逆序
- 华为OJ——句子逆序
- 词组缩写 英语句子所有单词首字母大写输出 C语言/C++编程题
- 【华为 OJ】 句子逆序
- 华为OJ——句子逆序
- 剑指offer 编程题(34):数组中的逆序对
- Java - 华为机试训练 - 句子逆序
- [华为]句子逆序
- 句子逆序
- 【华为oj】句子逆序
- 句子逆序
- 按单词逆序句子(含标点)
- 句子逆序-简单题
- 牛客网几道编程题(一) 统计字符、反转句子、删除公共字符
- 将一个句子逆序
- 英文句子逆序,各进制间转换,杨辉三角