python leetcode 344反轉字串

2022-05-10 03:33:44 字數 1389 閱讀 8946

編寫乙個函式,其作用是將輸入的字串反轉過來。輸入字串以字元陣列 char 的形式給出。

不要給另外的陣列分配額外的空間,你必須原地修改輸入陣列、使用 o(1) 的額外空間解決這一問題。

你可以假設陣列中的所有字元都是 ascii 碼表中的可列印字元。

示例 1:

輸入:["h","e","l","l","o"]

輸出:["o","l","l","e","h"]

示例 2:

輸入:["h","a","n","n","a","h"]

輸出:["h","a","n","n","a","h"]

這題比較簡單,如果使用python完成會很方便

上乙個簡單的**(通過192ms)擊敗13%

1

class

solution:

2def

reversestring(self, s):

3"""

4:type s: list[str]

5:rtype: void do not return anything, modify s in-place instead.

6"""

7 s[:]=s[::-1]89

if__name__=="

__main__":

10 s=solution()

11 list = [1,2,3]

12print(s.reversestring(list))

非常簡潔只有1行  前半句s[:]為s的全部遍歷,說下後半句的意思-1表示步長為1並且是倒序的。所以整句的意思就是倒序返回鍊錶。

換乙個常規做法(通過200ms)

1

class

solution:

2def

reversestring(self, s):

3"""

4:type s: list[str]

5:rtype: void do not return anything, modify s in-place instead.

6"""

7for i in range(len(s) // 2):

8 temp =s[i]

9 s[i] = s[-i - 1]

10 s[-i - 1] =temp

1112

if__name__=="

__main__":

13 s=solution()

14 list = [1,2,3]

15print(s.reversestring(list))

不需要太多解釋,就是反過來賦值。

python leetcode 最大回文數

直接暴力求解時間超出,選取manacher演算法 class solution def longestpalindrome self,s t join s 前後插入 是為了防止越界,不需要進行邊界判斷 n len t p 0 n 每一處的回文半徑 c r 0 r為當前訪問到的最右邊的值,c為此時對稱...

python LeetCode 奇偶鍊錶

給定乙個單鏈表,把所有的奇數節點和偶數節點分別排在一起。請注意,這裡的奇數節點和偶數節點指的是節點編號的奇偶性,而不是節點的值的奇偶性。請嘗試使用原地演算法完成。你的演算法的空間複雜度應為 o 1 時間複雜度應為 o nodes nodes 為節點總數。示例 1 輸入 1 2 3 4 5 null ...

python LeetCode 兩數之和

給定乙個整數陣列 nums 和乙個目標值 target,請你在該陣列中找出和為目標值的那 兩個 整數,並返回他們的陣列下標。你可以假設每種輸入只會對應乙個答案。但是,你不能重複利用這個陣列中同樣的元素。示例 給定 nums 2,7,11,15 target 9 因為 nums 0 nums 1 2 ...