翻轉句子中單詞的順序(程式設計師面試題精選100題)

2021-06-18 09:42:34 字數 714 閱讀 6096

題目:輸入乙個英文句子,翻轉句子中單詞的順序,但單詞內字元的順序不變。句子中單詞以空格符隔開。為簡單起見,標點符號和普通字母一樣處理。

例如輸入「i am a student.」,則輸出「student. a am i」。

分析:由於編寫字串相關**能夠反映程式設計師的程式設計能力和程式設計習慣,與字串相關的問題一直是程式設計師筆試、面試題的熱門題目。本題也曾多次受到包括微軟在內的大量公司的青睞。

思路:由於本題需要翻轉句子,我們先顛倒句子中的所有字元。這時,不但翻轉了句子中單詞的順序,而且單詞內字元也被翻轉了。我們再顛倒每個單詞內的字元。由於單詞內的字元被翻轉兩次,因此順序仍然和輸入時的順序保持一致。

首先翻轉乙個單詞(字串)**:

void reverse(char *pbegin, char *pend)

}

翻轉乙個句子**:

char* reversesentence(char *pdata)

// a word is between with pbegin and pend, reverse it

else if(*pend == ' ' || *pend == '\0')

else

}return pdata;

}

程式設計師面試題精選 翻轉句子中單詞的順序

題目 輸入乙個英文句子,翻轉句子中單詞的順序,但單詞內字元的順序不變。句子中單詞以空格符隔開。為簡單起見,標點符號和普通字母一樣處理。例如輸入 i am a student.則輸出 student.a am i 分析 由於編寫字串相關 能夠反映程式設計師的程式設計能力和程式設計習慣,與字串相關的問題...

程式設計師面試題精選 07 翻轉句子中單詞的順序

題目 輸入乙個英文句子,翻轉句子中單詞的順序,但單詞內字元的順序不變。句子中單詞以空格符隔開。為簡單起見,標點符號和普通字母一樣處理。例如輸入 i am a student.則輸出 student.a am i 分析 由於編寫字串相關 能夠反映程式設計師的程式設計能力和程式設計習慣,與字串相關的問題...

翻轉句子中單詞的順序

題目 輸入乙個英文句子,翻轉句子中單詞的順序,但單詞內字元的順序不變。句子中單詞以空格符隔開。為簡單起見,標點符號和普通字母一樣處理。例如輸入 i am a student.則輸出 student.a am i 分析 由於編寫字串相關 能夠反映程式設計師的程式設計能力和程式設計習慣,與字串相關的問題...