#344. 編寫乙個函式,其作用是將輸入的列表或字串反轉過來,假設輸入的資料型別是list.
示例1分析:之前看過別人用python解這道題,直接return s[::-1]輸入:[「h」,「e」,「l」,「l」,「o」]
輸出:[「o」,「l」,「l」,「e」,「h」]
可以用是可以用,但了解不到這裡的演算法的精髓,有點討巧的意思。
這題的使用演算法思路來解:把列表的元素前後進行對稱交換
第一位元素與最後一位交換;
第二位與倒數第二位交換;
第三位與倒數第三位交換;
…直至第(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 解釋 ...