反转单词序列
翻转单词顺序列
http://www.nowcoder.com/questionTerminal/3194a4f4cf814f63919d0790578d51f3
牛客最近来了一个新员工Fish,每天早晨总是会拿着一本英文杂志,写些句子在本子上。同事Cat对Fish写的内容颇感兴趣,有一天他向Fish借来翻看,但却读不懂它的意思。例如,“student. a am I”。后来才意识到,这家伙原来把句子单词的顺序翻转了,正确的句子应该是“I am a student.”。Cat对一一的翻转这些单词顺序可不在行,你能帮助他么?
class Solution {
public:
string ReverseSentence(string str) { //解法一,看的别的牛人的 https://www.nowcoder.com/profile/9093942/codeBookDetail?submissionId=16329784 int len = str.size(); string tmp="",res=""; for(int i=0;i<len;i++) { if(str[i]!=' ') { tmp+=str[i]; } else { res=' '+tmp+res; tmp=""; } } res=tmp+res; return res; /*解法2: int len = str.size(); if(len<=0) return ""; stack<string>srr; string stmp=""; for(int i=0;str[i]!='\0';i++) { if(str[i]==' ') { srr.push(stmp); stmp=""; continue; } stmp+=str[i]; } srr.push(stmp); str=""; while(!srr.empty()) { str=str+srr.top()+" "; srr.pop(); } return str.substr(0,len);//删去最后一个空格*/ }
};