對于一個(gè)字符串,請?jiān)O(shè)計(jì)一個(gè)算法,只在字符串的單詞間做逆序調(diào)整,也就是說,字符串由一些由空格分隔的部分組成,你需要將這些部分逆序。 給定一個(gè)原字符串A和他的長度,請返回逆序后的字符串。 測試樣例: “dog loves pig”,13 返回:”pig loves dog”
思路很簡單,首先將整個(gè)句子逆序,之后將每一個(gè)單詞逆序即可
class Reverse {public: string reverseSentence(string A, int n) { // write code here reverseString(A,0,A.size()-1); int begin=0; for(int i=0;i!=A.size();++i){ if(A[i]==' '){ reverseString(A,begin,i-1); begin=i+1; } } if(begin<A.size()-1) reverseString(A,begin,A.size()-1); return A; } void reverseString(string &A,int begin,int end) { if(begin>=end) return; for(int i=begin,j=end;i<j;++i,--j) swapnum(A[i],A[j]); } void swapnum(char &a,char &b) { char temp=a; a=b; b=temp; }};新聞熱點(diǎn)
疑難解答