真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

【Leetcode筆記】反轉(zhuǎn)字符串Ⅱ-創(chuàng)新互聯(lián)

Leetcode原題鏈接:反轉(zhuǎn)字符串Ⅱ

創(chuàng)新互聯(lián)是一家集網(wǎng)站建設(shè),保德企業(yè)網(wǎng)站建設(shè),保德品牌網(wǎng)站建設(shè),網(wǎng)站定制,保德網(wǎng)站建設(shè)報(bào)價(jià),網(wǎng)絡(luò)營(yíng)銷,網(wǎng)絡(luò)優(yōu)化,保德網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強(qiáng)企業(yè)競(jìng)爭(zhēng)力。可充分滿足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時(shí)我們時(shí)刻保持專業(yè)、時(shí)尚、前沿,時(shí)刻以成就客戶成長(zhǎng)自我,堅(jiān)持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實(shí)用型網(wǎng)站。
一、思路
  • 與反轉(zhuǎn)字符串相比,只是邊界條件多了一些,思路基本一致。
  • 一個(gè)需要注意的點(diǎn)是這里的字符串確實(shí)是字符串,處理前后需要轉(zhuǎn)換數(shù)據(jù)類型,反轉(zhuǎn)字符串里的字符串是由字符組成的列表。
二、代碼 1、個(gè)人通過版(原始)

第一遍順下來寫的代碼,能通過,但是有不少冗余。

class Solution:
    def reverseStr(self, s: str, k: int) ->str:
        n = len(s)
        fast, slow = -1, -1
        count = 0
        s = list(s)

        while(1):
            left = slow + 1
            if n - count< k:
                right = n - 1
            elif k<= n - count< 2 * k:
                for i in range(k):
                    slow += 1
                    fast += 2
                right = slow
            else:
                for i in range(k):
                    slow += 1
                    fast += 2
                right = slow

            while left< right:
                s[left], s[right] = s[right], s[left]
                left += 1
                right -= 1

            for j in range(k):
                count += 2
            if count >n:
                break
            slow = fast
        
        return ''.join(s)
2、個(gè)人通過版(改進(jìn))

在 1 的基礎(chǔ)上去掉了一些冗余后的版本。

class Solution:
    def reverseStr(self, s: str, k: int) ->str:
        n = len(s)
        p = 0
        s = list(s)

        for count in range(0, n, 2*k):
            left = p
            
            if n - count< k:
                right = n - 1
            else:
                p += k
                right = p - 1

            while left< right:
                s[left], s[right] = s[right], s[left]
                left += 1
                right -= 1

            p += k
        
        return ''.join(s)
3、高手版

運(yùn)用了一些算是 python 獨(dú)有的特點(diǎn),不需要考慮任何邊界條件。

class Solution:
    def reverseStr(self, s: str, k: int) ->str:
        """
        1. 使用range(start, end, step)來確定需要調(diào)換的初始位置
        2. 對(duì)于字符串s = 'abc',如果使用s[0:999] ===>'abc'。字符串末尾如果超過大長(zhǎng)度,則會(huì)返回至字符串最后一個(gè)值,這個(gè)特性可以避免一些邊界條件的處理。
        3. 用切片整體替換,而不是一個(gè)個(gè)替換.
        """
        def reverse_substring(text):
            left, right = 0, len(text) - 1
            while left< right:
                text[left], text[right] = text[right], text[left]
                left += 1
                right -= 1
            return text
        
        res = list(s)

        for cur in range(0, len(s), 2 * k):
            res[cur: cur + k] = reverse_substring(res[cur: cur + k])
        
        return ''.join(res)
三、溫故知新

列表轉(zhuǎn)為字符串的方法。

a = ['h','e','l','l','o']
print(a)
b = ''.join(a)
print(b)

# ['h','e','l','l','o']
# hello

其中join函數(shù)可以連接字符串,用法:連接任意數(shù)量的字符串(包括要連接的元素字符串、元組、列表、字典),用新的目標(biāo)分隔符連接,返回新的字符串。
舉例如下:

## 字符串:
';'.join('abc') 
# 輸出結(jié)果為:'a;b;c'  
string1 = 'good idea'#定義字符串
' '.join(string1) 
# 輸出結(jié)果:'g o o d   i d e a' 
 
#說明:由于字符串里沒指明按字符串之間是怎么連接的,默認(rèn)每個(gè)字符之間插入目標(biāo)字符


# 元組:
tuple1 = ('a','b','c')  #定義元組tuple1
'、'.join(tuple1)
# 輸出結(jié)果:'a、b、c'
tuple2 = ('hello','peace','world')  #定義元組tuple2
' '.join(tuple2)
# 輸出結(jié)果:'hello peace world'


# 列表
b = ['a','b','c'] #定義列表
'、'.join(b)
# 輸出結(jié)果:'a、b、c'
list1 = ['hello','peace','world'] #定義列表
' '.join(list1)
# 輸出結(jié)果:'hello peace world'


## 字典:
c={'hello':1,'world':2}
';'.join(c)
# 輸出結(jié)果:'hello;world'
d = {'hello':'hi','world':'2'}
' '.join(d)
# 輸出結(jié)果:'hello world'

部分內(nèi)容參考代碼隨想錄、python的join函數(shù)的用法及實(shí)例

你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機(jī)房具備T級(jí)流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級(jí)服務(wù)器適合批量采購(gòu),新人活動(dòng)首月15元起,快前往官網(wǎng)查看詳情吧


網(wǎng)站欄目:【Leetcode筆記】反轉(zhuǎn)字符串Ⅱ-創(chuàng)新互聯(lián)
文章位置:http://weahome.cn/article/dcpgsh.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部