牛客最近來了乙個新員工fish,每天早晨總是會拿著一本英文雜誌,寫些句子在本子上。同事cat對fish寫的內容頗感興趣,有一天他向fish借來翻看,但卻讀不懂它的意思。例如,「student. a am i」。後來才意識到,這傢伙原來把句子單詞的順序翻轉了,正確的句子應該是「i am a student.」。cat對一一的翻轉這些單詞順序可不在行,你能幫助他麼?
思路:1、翻轉句子中的所有字元
2、翻轉每個單詞中字元的順序
難點在於如何翻轉每個單詞中字元的順序
這段**用於確定每個單詞的起始和終止位置:
b指向起始位置,e指向終止位置,be++,直到單詞終止位置的下一位置,這個位置要麼為空字元,要麼為str.size()的位置
找到單詞終止位置e,進行單詞翻轉
並將b、e都指向單詞終止位置的下一位置,判斷是空格還是str.size()
如果是str.size(),說明沒有單詞可翻轉了,如果是空格,則b++、e++,直到不是空格,到達下一單詞的開頭,e繼續e++到達單詞終止位置的下一位置
int b = 0, e = 0;
while(b < str.size())
else if(str[e] == ' ' || e == str.size())
else
}
其他寫法:
int s = 0, e = 0;
int i = 0;
while(i < str.size())
reverseword(str, s, e - 1); //區域性翻轉
}
class solution
string reversesentence(string str)
else if(str[e] == ' ' || e == str.size())
else
}return str;
}};
翻轉單詞順序列
最近來了乙個新員工fish,每天早晨總是會拿著一本英文雜誌,寫些句子在本子上。同事cat對fish寫的內容頗感興趣,有一天他向fish借來翻看,但卻讀不懂它的意思。例如,student.a am i 後來才意識到,這傢伙原來把句子單詞的順序翻轉了,正確的句子應該是 i am a student.ca...
翻轉單詞順序列
牛客最近來了乙個新員工fish,每天早晨總是會拿著一本英文雜誌,寫些句子在本子上。同事cat對fish寫的內容頗感興趣,有一天他向fish借來翻看,但卻讀不懂它的意思。例如,student.a am i 後來才意識到,這傢伙原來把句子單詞的順序翻轉了,正確的句子應該是 i am a student....
翻轉單詞順序列
題目描述 牛客最近來了乙個新員工fish,每天早晨總是會拿著一本英文雜誌,寫些句子在本子上。同事cat對fish寫的內容頗感興趣,有一天他向fish借來翻看,但卻讀不懂它的意思。例如,student.a am i 後來才意識到,這傢伙原來把句子單詞的順序翻轉了,正確的句子應該是 i am a stu...