【华为oj】句子逆序

问题描述:将一个英文语句以单词为单位逆序排放。例如“I am a boy”,逆序排放后为“boy a am I”

所有单词之间用一个空格隔开,语句中除了英文字母外,不再包含其他字符

接口说明

/**

 * 反转句子

 *

 *@param sentence 原句子

 *@return 反转后的句子

 */

public String reverse(String sentence);

知识点:  数组 

题目来源:  内部整理 

练习阶段:  初级 

运行时间限制: 10Sec

内存限制: 128MByte

输入: 

将一个英文语句以单词为单位逆序排放。

输出: 

得到逆序的句子

样例输入: I am a boy                   

样例输出: boy a am I

问题分析:逆序输出,需要查找空格(从后往前查找),并用start和end分别记录空格后的这个单词的起始地址和截止地址。

代码

#include 
#include 

using namespace std;
int main()
{
	int start=0;
	int i=0,j=0,k=0;
	string str,strout;
	getline(cin,str);
	strout=str;

	string::iterator itstart,itend;
	string::iterator it;

	it=strout.begin();
	itstart=itend=str.end()-1;

	int wordlen=0;

	for(i=str.size()-1;i>=0;i--)
	{
		if(0!=i)
		{
			if(*(itstart--)==' ')
			{
				wordlen=itend-itstart-1;
				k=0;
				for(j=start;j


#include
#include

using namespace std;

int main()
{
	string str;
	getline(cin,str);
	int len = str.length();
	int pos = 0;
	int i = 0;
	for(i=len-1;i>=0;i--)
	{
		pos++;
		if(' '==str[i])
		{
			cout<

  

你可能感兴趣的:(华为OJ)