第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定

LeetCode 151. 翻轉(zhuǎn)字符串里的單詞

標(biāo)簽:
Python 算法

151. 翻转字符串里的单词


题目


给定一个字符串,逐个翻转字符串中的每个单词。

示例 1:

输入: "the sky is blue"
输出: "blue is sky the"

示例 2:

输入: "  hello world!  "
输出: "world! hello"
解释: 输入字符串可以在前面或者后面包含多余的空格,但是反转后的字符不能包括。

示例 3:

输入: "a good   example"
输出: "example good a"
解释: 如果两个单词间有多余的空格,将反转后单词间的空格减少到只含一个。

说明:

  • 无空格字符构成一个单词。
  • 输入字符串可以在前面或者后面包含多余的空格,但是反转后的字符不能包括。
  • 如果两个单词间有多余的空格,将反转后单词间的空格减少到只含一个。

解题思路


思路一:利用语言特性

python 语言中提供 split 切割,join 连接等方法,可以直接调用内置方法解决该问题。

具体的步骤:

  • 使用 spilt 将字符进行切割,得到字符串列表
  • 使用切片操作反转字符串列表
  • 使用 join 将反转后的字符串列表用空格拼接。

当用此方法编写代码完成后,可以考虑自己编写函数实现,或者换其他思路实现。

思路二:双指针

因为最终结果需要数组进行倒序后输出,所以在尾部进行双指针定义,倒序遍历数组。

题目中说明【无空格字符构成一个单词】。那么按照这个原则,确定单词边界,将单词添加到定义的列表中。

最终的步骤也是将单词列表拼接返回。

具体过程如下图:

图解

代码实现


语言特性:代码实现
class Solution:
    def reverseWords(self, s: str) -> str:
        return ' '.join(s.split()[::-1])

双指针:代码实现
class Solution:
    def reverseWords(self, s: str) -> str:
		# 尾部定义指针
        p = len(s) - 1
		# 定义返回结果
        ans = []

        while p >= 0:
        	# 倒序遍历,这里先去除尾部空格
            while p >= 0 and s[p] == ' ':
                p -= 1
            # 重置指针
            q = p
            # 这一步防止开头存在空格,
            # 最终却把空格添加到返回结果中
            if q < 0:
                break
            # 确定单词边界
            while p >= 0 and s[p] != ' ':
                p -= 1
            # 将单词放到结果中
            ans.append(s[p + 1:q + 1])
		# 拼接返回结果
        return ' '.join(ans)

实现结果


语言特性:实现结果

语言特性 | 实现结果

双指针:实现结果

双指针 | 实现结果


以上就是使用语言特性,或者使用双指针的方法来解决《151. 翻转字符串里的单词》问题的主要内容。


點(diǎn)擊查看更多內(nèi)容
1人點(diǎn)贊

若覺得本文不錯(cuò),就分享一下吧!

評(píng)論

作者其他優(yōu)質(zhì)文章

正在加載中
感謝您的支持,我會(huì)繼續(xù)努力的~
掃碼打賞,你說多少就多少
贊賞金額會(huì)直接到老師賬戶
支付方式
打開微信掃一掃,即可進(jìn)行掃碼打賞哦
今天注冊(cè)有機(jī)會(huì)得

100積分直接送

付費(fèi)專欄免費(fèi)學(xué)

大額優(yōu)惠券免費(fèi)領(lǐng)

立即參與 放棄機(jī)會(huì)
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)

舉報(bào)

0/150
提交
取消