(C++)剑指offer-44:翻转单词顺序列(知识迁移能力)

剑指offer-44:翻转单词顺序列

目录

  • 剑指offer-44翻转单词顺序列
  • 目录
    • 1题目描述
    • 2题目答案

1题目描述

牛客最近来了一个新员工Fish,每天早晨总是会拿着一本英文杂志,写些句子在本子上。同事Cat对Fish写的内容颇感兴趣,有一天他向Fish借来翻看,但却读不懂它的意思。例如,“student. a am I”。后来才意识到,这家伙原来把句子单词的顺序翻转了,正确的句子应该是“I am a student.”。Cat对一一的翻转这些单词顺序可不在行,你能帮助他么?
(C++)剑指offer-44:翻转单词顺序列(知识迁移能力)_第1张图片

2题目答案

class Solution {
//tmp是当前正在处理的单词,res是反转之后的句子。当一个单词结束后将它拼接到res的前面。  
public:
    string ReverseSentence(string str) {
        string res = "", tmp = "";
        for(unsigned int i = 0; i < str.size(); ++i){
            if(str[i] == ' ') res = " " + tmp + res, tmp = "";
            else tmp += str[i];
        }
        if(tmp.size()) res = tmp + res;
        return res;
    }
}; 

你可能感兴趣的:(剑指offerC++)