劍指Offer之翻轉單詞順序

2021-09-01 21:17:34 字數 1584 閱讀 2839

題目描述:jobdu最近來了乙個新員工fish,每天早晨總是會拿著一本英文雜誌,寫些句子在本子上。同事cat對fish寫的內容頗感興趣,有一天他向fish借來翻看,但卻讀不懂它的意思。例如,「student. a am i」。後來才意識到,這傢伙原來把句子單詞的順序翻轉了,正確的句子應該是「i am a student.」。cat對一一的翻轉這些單詞順序可不在行,你能幫助他麼?

輸入:每個測試案例為一行,表示一句英文句子。

我們保證乙個句子的單詞數不會超過600,每個單詞的長度也不會超過30。但是需要注意的是fish是個不拘小節的人,有時候兩個單詞中間可能會有很多空格。為了方便起見,你可以認為一行的字元總數不會超過50000個,標點符號可以和普通字母一樣處理。

輸出:對應每個測試案例,把翻轉後的正確的句子單獨輸出一行。

樣例輸入:

student. a am i

i'm a freshman and i like jobdu!

樣例輸出:

i am a student.

jobdu! like i and freshman a i'm

【解析】

* 日期:2013-11-29

* 題號: 題目1361:翻轉單詞順序

* 結果:ac

* 總結:

**********************************/

#include #include #include char *words;

//反轉單詞

void reverseword(char* words,int begin,int end)

//反轉

while(begin < end)

}char* reverse(char *words)

int len = strlen(words);

//反轉整個句子

reverseword(words,0,len-1);

//逐個反轉單詞

int begin = 0,end = 0,isfirst = 0;//begin 單詞第乙個字母下標 end 單詞最後乙個字母下標isfirst 判斷是不是單詞後第乙個空格

for(i = 0;i <= len;i++)

//單詞後第乙個空格或者乙個句子的結束

else if((isfirst == 1 && words[i] == ' ')|| words[i] == '\0')

//單詞

else

}return words;

}int main()

printf("\n");

}//while

return 0;

}

劍指Offer 翻轉單詞順序

題目描述 牛客最近來了乙個新員工fish,每天早晨總是會拿著一本英文雜誌,寫些句子在本子上。同事cat對fish寫的內容頗感興趣,有一天他向fish借來翻看,但卻讀不懂它的意思。例如,student.a am i 後來才意識到,這傢伙原來把句子單詞的順序翻轉了,正確的句子應該是 i am a stu...

劍指offer 翻轉單詞順序

輸入乙個英文句子,翻轉句子中單詞的順序,但單詞內字元的順序不變。為簡單起見,標點符號和普通字母一樣處理。例如輸入字串 i am a student.則輸出 student.a am i 示例 1 輸入 the sky is blue 輸出 blue is sky the 示例 2 輸入 hello ...

劍指Offer 翻轉單詞順序

輸入乙個英文句子,翻轉句子中單詞的順序,但單詞內字元的順序不變。為簡單起見,標點符號和普通字母一樣處理。例如輸入字串 i am a student.則輸出 student.a am i 示例 1 輸入 the sky is blue 輸出 blue is sky the 示例 2 輸入 hello ...