leetcode刷題 字串 反轉字串

2021-10-11 22:56:49 字數 684 閱讀 7785

給定乙個字串 s 和乙個整數 k,你需要對從字串開頭算起的每隔 2k 個字元的前 k 個字元進行反轉。

如果剩餘字元少於 k 個,則將剩餘字元全部反轉。

如果剩餘字元小於 2k 但大於或等於 k 個,則反轉前 k 個字元,其餘字元保持原樣。

示例:

輸入: s = 「abcdefg」, k = 2

輸出: 「bacdfeg」

該字串只包含小寫英文本母。

給定字串的長度和 k 在 [1, 10000] 範圍內。

這題的題意通俗點講就是,每隔k個就反轉k個,不夠k個就全反轉

一開始做這道題的時候思路想錯了,想著用計數器來計數,每反轉k個就再重新k個之後再啟動反轉程式反轉k個。

這種思路太複雜了,麻煩。

下面是題解的思路

我們直接翻轉每個 2k 字元塊。

每個塊開始於 2k 的倍數,也就是 0, 2k, 4k, 6k, …。需要注意的一件是:如果沒有足夠的字元,我們並不需要翻轉這個塊。

為了翻轉從 i 到 j 的字元塊,我們可以交換位於 i++ 和 j-- 的字元。

class

solution

}return

newstring

(a);

}}

leetcode刷題 字串

給定兩個字串 s 和 t 編寫乙個函式來判斷 t 是否是 s 的字母異位詞。示例 1 輸入 s anagram t nagaram 輸出 true 示例 2 輸入 s rat t car 輸出 false 說明 你可以假設字串只包含小寫字母。高階 如果輸入字串包含 unicode 字元怎麼辦?你能否...

leetcode刷題 反轉字串

編寫乙個函式,其作用是將輸入的字串反轉過來。輸入字串以字元陣列 char 的形式給出。不要給另外的陣列分配額外的空間,你必須原地修改輸入陣列 使用 o 1 的額外空間解決這一問題。你可以假設陣列中的所有字元都是 ascii 碼表中的可列印字元。示例 1 輸入 h e l l o 輸出 o l l e...

LeetCode刷題 字串陣列之間轉換

給你乙個僅由數字 6 和 9 組成的正整數 num。你最多只能翻轉一位數字,將 6 變成 9,或者把 9 變成 6 請返回你可以得到的最大數字。示例 1 輸入 num 9669 輸出 9969 解釋 改變第一位數字可以得到 6669 改變第二位數字可以得到 9969 改變第三位數字可以得到 9699...