反轉字串,是經常出現的一種演算法題,使用c/c++語言時,通常要求在原地進行反轉。
最直接的反轉整個字串,使用的是一前一後雙指標的方法
高階的翻轉,同要要涉及到兩個指標,只是兩個指標就行區域性反轉
高階題目:
給定乙個字串和乙個整數 k,你需要對從字串開頭算起的每個 2k 個字元的前k個字元進行反轉。如果剩餘少於 k 個字元,則將剩餘的所有全部反轉。如果有小於 2k 但大於或等於 k 個字元,則反轉前 k 個字元,並將剩餘的字元保持原樣。
示例:輸入: s = "abcdefg", k = 2
輸出: "bacdfeg"
要求:該字串只包含小寫的英文本母。
給定字串的長度和 k 在[1, 10000]範圍內。
class solution
return s;
}};
兩個指標移動的區域性反轉
給定乙個字串,你需要反轉字串中每個單詞的字元順序,同時仍保留空格和單詞的初始順序。
示例 1:
輸入: "let's take leetcode contest"
輸出: "s'tel ekat edocteel tsetnoc"
class solution {
public:
string reversewords(string s) {
int i=0,j=0;
while(i最難的反轉字串
給定乙個字串,逐個翻轉字串中的每個單詞。
示例 1:
輸入: "the sky is blue"
輸出: "blue is sky the"
示例 2:
輸入: " hello world! "
輸出: "world! hello"
解釋: 輸入字串可以在前面或者後面包含多餘的空格,但是反轉後的字元不能包括。
示例 3:
輸入: "a good example"
輸出: "example good a"
解釋: 如果兩個單詞間有多餘的空格,將反轉後單詞間的空格減少到只含乙個。
說明:無空格字元構成乙個單詞。
輸入字串可以在前面或者後面包含多餘的空格,但是反轉後的字元不能包括。
如果兩個單詞間有多餘的空格,將反轉後單詞間的空格減少到只含乙個。
字串反轉 演算法
xiangqi 寫道 字串比如 ad2 lsdkf,lksdjf.sdkfj 倒序排列 sdkfj lksdjf.lsdkf,ad2 每個單詞是空格分開,標點符號當作字母,不能用string的自帶的一些方法,比如indexof,trim,split等方法。大概的偽碼,字串大的話可以用 stringb...
演算法練習 反轉字串
先看看原題 編寫乙個函式,其作用是將輸入的字串反轉過來。示例 1 輸入 hello 輸出 olleh 示例 2 輸入 a man,a plan,a canal panama 輸出 amanap lanac a nalp a nam a 反向遍歷一遍字串中的所有字元,放在乙個陣列裡面,然後再遍歷一遍陣...
演算法探索 反轉字串
編寫乙個函式,其作用是將輸入的字串反轉過來。輸入字串以字元陣列 char 的形式給出。不要給另外的陣列分配額外的空間,你必須原地修改輸入陣列 使用 o 1 的額外空間解決這一問題。你可以假設陣列中的所有字元都是 ascii 碼表中的可列印字元。示例 1 輸入 h e l l o 輸出 o l l e...