翻转单词顺序列
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了翻转单词顺序列相关的知识,希望对你有一定的参考价值。
题目描述
牛客最近来了一个新员工Fish,每天早晨总是会拿着一本英文杂志,写些句子在本子上。同事Cat对Fish写的内容颇感兴趣,有一天他向Fish借来翻看,但却读不懂它的意思。例如,“student. a am I”。后来才意识到,这家伙原来把句子单词的顺序翻转了,正确的句子应该是“I am a student.”。Cat对一一的翻转这些单词顺序可不在行,你能帮助他么?
1 class Solution { 2 public: 3 string ReverseSentence(string str) { 4 if(str.length() < 1) 5 return str; 6 bool sp = 1; 7 for (int i = 0 ;i < str.length() ; ++i) 8 { 9 if(str[i] != ‘ ‘) 10 { 11 sp = 0; 12 break; 13 } 14 } 15 if(sp) 16 { 17 return str; 18 } 19 stringstream ss; 20 ss << str; 21 string stem; 22 stack<string> st; 23 while(ss>>stem) 24 { 25 st.push(stem); 26 } 27 stem = ""; 28 bool fir = 1; 29 while(!st.empty()) 30 { 31 if (fir) 32 { 33 fir = 0; 34 stem += st.top(); 35 } 36 else 37 { 38 stem += " " + st.top(); 39 } 40 st.pop(); 41 } 42 return stem; 43 } 44 };
以上是关于翻转单词顺序列的主要内容,如果未能解决你的问题,请参考以下文章