對於一個字符串,請設計一個算法,只在字符串的單詞間作逆序調整,也就是說,字符串由一些由空格分隔的部分組成,你須要將這些部分逆序。python
給定一個原字符串A和他的長度,請返回逆序後的字符串。算法
測試樣例:app
"dog loves pig",13ide
返回:"pig loves dog"測試
python實現設計
class Reverse: def reverseSentence(self, A, n): # write code here Alist = list(A) Alist.append(' ') res = [] tmpstr = "" for i in xrange(len(Alist)): if Alist[i]!=' ': #不是空格,字符串累加 tmpstr = tmpstr + Alist[i] else: if Alist[i]==' ': #是空格,將字符串放入list res.append(tmpstr) tmpstr = "" res.reverse() #總體反轉 return ' '.join(res) def main(): A="dog loves pig" t = Reverse() print t.reverseSentence(A, len(A)) if __name__ == "__main__": main()
C++實現code
class Reverse { public: string reverseSentence(string A, int n) { // write code here vector<string> sv(1); int tag = 0; for (int i = 0; i < A.length(); ++i) { if (A[i] == ' ') { tag++; sv.resize(tag+1); continue; } sv[tag] = sv[tag] + A[i]; } reverse(sv.begin(),sv.end()); A.clear(); for (int i = 0; i < sv.size();i++) { //cout << sv[i] << " "; if (i != sv.size()-1) A = A + sv[i] + " "; else A = A + sv[i]; } return A; } };