Leetcode344--翻轉字符串
發表時(shí)間:2019-7-6
發布人(rén):融晨科技
浏覽次數:39
Leetcode344:翻轉字符串
編程語言:python
文章目錄
- Leetcode344--翻轉字符串
- 題目描述
- 解題思路
Leetcode344–翻轉字符串
Leetcode344:翻轉字符串
編程語言:python
題目描述
原題鏈接:https://leetcode-cn.com/problems/reverse-string/ (中文)
????? https://leetcode.com/problems/reverse-string/ (英文)
題目描述:
編寫一個(gè)函數,其作用是(shì)将輸入的(de)字符串反轉過來(lái)。輸入字符串以(yǐ)字符數組char[] 的(de)形式給出(chū)。
不(bù)要(yào / yāo)給另外的(de)數組分配額外的(de)空間,你必須原地(dì / de)修改輸入數組、使用 O ( 1 ) O(1) O(1) 的(de)額外空間解決這(zhè)一問題。
你可以(yǐ)假設數組中的(de)所有字符都是(shì) ASCII碼表中的(de)可打印字符。
示例1:
輸入:[“h”,“e”,“l”,“l”,“o”]
輸出(chū):[“o”,“l”,“l”,“e”,“h”]
示例2:
輸入:[“H”,“a”,“n”,“n”,“a”,“h”]
輸出(chū):[“h”,“a”,“n”,“n”,“a”,“H”]
解題思路
方法1:
使用雙指針方法,從首尾往中間靠攏,相遇時(shí)交換完成
def reverseString(self, s: List[str]) -> None:
"""
Do not return anything, modify s in-place instead.
"""
length = len(s)
half = len(s) // 2
# 建立一個(gè)tmp臨時(shí)變量,用于(yú)緩存數組着中的(de)元素
for i in range(half):
tmp = s[i]
s[i] = s[length-i-1]
s[length-i-1] = tmp
python可以(yǐ)同時(shí)給多個(gè)變量賦值,上(shàng)述代碼可以(yǐ)改寫爲(wéi / wèi):
def reverseString(self, s):
"""
:type s: List[str]
:rtype: void Do not return anything, modify s in-place instead.
"""
length = len(s)
half = l//2
for i in range(half):
s[i], s[length-i-1] = s[length-i-1], s[i]
方法2:
使用python内置函數
def reverseString(self, s):
"""
:type s: List[str]
:rtype: void Do not return anything, modify s in-place instead.
"""
s.reverse()
方法3:
使用pop方法,每次循環删除第一元素,然後插入到(dào)指定的(de)位置
每次删除原字符串改變一位,最新的(de)需要(yào / yāo)翻轉的(de)字符變爲(wéi / wèi)第一個(gè)字符,循環
n
?
1
n-1
n?1次後完成翻轉。
def reverseString(self, s):
"""
:type s: List[str]
:rtype: void Do not return anything, modify s in-place instead.
"""
n = len(s)
for i in range(n-1):
t = s.pop(0)
s.insert(n-i-1, t)
歡迎大(dà)家關注我的(de)個(gè)人(rén)公衆号,同樣的(de)也(yě)是(shì)和(hé / huò)該博客賬号一樣,專注分析技術問題,我們一起學習進步