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

2021-07-05 15:45:36 字數 978 閱讀 8886

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

方法:第一步翻轉句子中所有的字元,第二步翻轉每個單詞中字元的順序。

void reverse(char* pbegin, char* pend)

while (pbegin < pend)

}char* reversesentence(char *pdata)

char *pbegin = pdata;

char *pend = pdata;

while (*pend != '\0')

pend--;

//翻轉整個句子

reverse(pbegin, pend);

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

pbegin = pend = pdata;

while (*pbegin != '\0')

else

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

else

}return pdata;

}

測試用例

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

方法:先翻轉0~k-1,k-1~length-1,在翻轉整個字串

char* leftrotatestring(char* pstr, int n)

}return pstr;

}

測試用例

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

全部內容來自 劍指offer 題目一 輸入乙個英文句子,翻轉句子中單詞的順序,但單詞內字元的順序不變。為簡單起見,標點符號和普通字元一樣處理。例如輸入字串 i am a student.則輸出 student.a am i answer void reverse char pbegin,char p...

演算法題目 翻轉單詞順序 VS 左旋轉字串

輸入乙個英文句子,翻轉句子中單詞的順序,但單詞內字元的順序不變。include include include using namespace std void reverse char pbegin,char pend char reversesentence char pdata else if...

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

輸入乙個英文句子,翻轉句子中單詞的順序,但單詞內字元的順序不變。為簡單起見,標點符號和普通字母一樣處理。例如輸入字串 i am a student.則輸出 student.a am i include using namespace std void reverse char p1,char p2 ...