编程题:将一句话里的单词进行倒置

腾讯2016年4月2号暑假实习移动开发岗的笔试题,编程题第四题大概题目是:


将一句话中的单词进行倒置(单词之间倒转,单词本身不倒置),标点符号不倒置。

比如一句话“I come from China.”,倒置后变成“China. from come I”。


C++的参考代码如下:

方法一:

#include 
#include 
using namespace std;


void reverseStr(string &s,int begin,int end){
    
    while (begin < end) {
        char temp = s[begin];
        s[begin] = s[end];
        s[end] = temp;
        begin++;
        end--;
    }
}


int main(){

    string s;
    
    while (getline(cin,s)) {
        
        int length = (int)s.length();
        reverseStr(s,0,length-1); //先将句子按字符反转
    
        int j = 0;
        for (int i=0; i



方法二:(用stack)

#include
#include
#include
#include

using namespace std;

int main(void)
{
	stack sstack;
	string line, word;

	getline(cin, line);

	istringstream stream(line);//字符输入流
	while (stream >> word)
	{
		sstack.push(word);
	}

	while (!sstack.empty())
	{
		cout << sstack.top() << " ";
		sstack.pop();
	}

	cout << endl;
	return 0;
}


运行结果:

编程题:将一句话里的单词进行倒置_第1张图片

你可能感兴趣的:(面试题目,C++)