翻轉字串 VS 左旋轉字串

2021-08-14 17:08:05 字數 1218 閱讀 7584

題目一:輸入乙個英文句子,翻轉句子中單詞的順序,但單詞內字元的順序不變。為簡單起見,標點符號和普通字母一樣處理。例如輸入字串「i am a student.」,則輸出」student. a am i」。

第一步:翻轉句子中的所有字元,比如翻轉」i am a student.」中的所有字元得到」.tneduts a ma i」,此時不但翻轉了句子中單詞的順序,每個單詞內的字元也被翻轉了。第二步,再翻轉每個單詞中字元的順序,就得到了」student. a am i」。

void reverse(char* begin, char* end)

}char* reversesentence(char* str)

end--;//因為此時end在\0處,所以需要向前一位到最後乙個字元的位置

reverse(begin, end);//翻轉整個句子

//翻轉句子中的每個單詞

begin = end = str;

while (*begin != '\0')

//每乙個單詞當end為空格時旋轉

題目二:字串的左旋操作是把字串前面的若干個字元轉移到字串的尾部。請定義乙個函式實現字串左旋操作的功能。比如,輸入字串」abcdefg」和數字2,該函式將返回左旋轉2位所得到的結果」cdefgab」.

我們可以考慮將字串分為兩部分,由於所傳的數字是2,即我們要把它的前兩個字串移到後面,我們把前兩個字串當作第一部分,對它進行旋轉得到」ba」,再將後面的字元當作另一部分進行旋轉,得到」gfedc」,此時字串變為」bagfedc」,再將它進行整體旋轉,得到」cdefgab」,即將字串左旋兩位的結果。

翻轉字串和左旋轉字串

左旋 class solution void reverse string str,int begin,int end 翻 class solution int begin 0 intend for int i 0 i num i reverse str,begin,length 1 最後乙個空白的...

new 翻轉字串 左旋轉字串

輸入乙個英文句子,翻轉句子中單詞的順序,單詞順序不變,標點符號和簡單字母一樣處理,例如 輸入 i am a student 輸出 student.a am i 此類題目很常見 翻轉句子中所有字元 再反轉每個單詞中字元的順序 有經驗的面試官如果看到應聘者幾乎不假思索的想出一道比較巧妙的演算法,就會覺得...

翻轉單詞順序 VS 左旋轉字串

題目1 輸入乙個英文句子,翻轉句子中單詞的順序,但單詞內字元的順序不變,標點符號和普通字母一樣處理。例如輸入 i am a student.則輸出 student.a am i 方法 第一步翻轉句子中所有的字元,第二步翻轉每個單詞中字元的順序。void reverse char pbegin,cha...