leetcode演算法題 344

2021-09-24 14:13:00 字數 774 閱讀 9848

#344. 編寫乙個函式,其作用是將輸入的列表或字串反轉過來,假設輸入的資料型別是list.

示例1

輸入:[「h」,「e」,「l」,「l」,「o」]

輸出:[「o」,「l」,「l」,「e」,「h」]

分析:之前看過別人用python解這道題,直接return s[::-1]

可以用是可以用,但了解不到這裡的演算法的精髓,有點討巧的意思。

這題的使用演算法思路來解:把列表的元素前後進行對稱交換

第一位元素與最後一位交換;

第二位與倒數第二位交換;

第三位與倒數第三位交換;

…直至第(len(s)/2)位與倒數第(len(s)/2)位進行交換;

ps:列表長度為奇數時候,不需要進行交換元素,因此只需要取值到len(s)/2,便可訪問全部的元素。

code section

class

solution

:def

reversestring

(self, s)

:for i in

range

(len

(s)//2)

: mid = s[i]

s[i]

= s[

len(s)-1

-i] s[

len(s)-1

-i]= mid

return s

leetcode千題 344 反轉字串

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

LeetCode 演算法題

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

Leetcode演算法題

56.合併區間 給出乙個區間的集合,請合併所有重疊的區間。示例 1 輸入 intervals 1,3 2,6 8,10 15,18 輸出 1,6 8,10 15,18 解釋 區間 1,3 和 2,6 重疊,將它們合併為 1,6 示例 2 輸入 intervals 1,4 4,5 輸出 1,5 解釋 ...