Day9 字符串Part2

任务

151. 反转字符串中的单词

给你一个字符串 s ,请你反转字符串中 单词 的顺序。

单词 是由非空格字符组成的字符串。s 中使用至少一个空格将字符串中的 单词 分隔开。

返回 单词 顺序颠倒且 单词 之间用单个空格连接的结果字符串。

思路

将原字符串分割成单次列表后,反转整个列表,再添加空格即可。

class Solution:
    def reverseWords(self, s: str) -> str:
        words = s.split()
        start,end = 0,len(words)
        words[start:end] = words[start:end][::-1]     
        return " ".join(words)

若不允许使用split,且使用可以修改string的语言,则思路如下

  1. 去除多余的空格(头尾,以及中间多余的),形成新的字符串s。 =》类比数组Part1的移除元素
  2. 反转整个字符串s =》调用reverse即可,reverse实现参考反转字符串
  3. 反转字符串中的每个单词 =>调用reverse即可

kama 55. 右旋字符串(第八期模拟笔试)

字符串的右旋转操作是把字符串尾部的若干个字符转移到字符串的前面。给定一个字符串 s 和一个正整数 k,请编写一个函数,将字符串中的后面 k 个字符移到字符串的前面,实现字符串的右旋转操作。
例如,对于输入字符串 "abcdefg" 和整数 2,函数应该将其转换为 "fgabcde"

思路

通过切片来确定最后的字符串,参考 541. 反转字符串 II

k = int(input())
s = input()
s = s[len(s)-k: ] + s[:len(s)-k]
print(s)

其他语言非切片的思路类似151. 反转字符串中的单词,整体倒序,然后根据k局部倒序

心得

py中可以使用切片,字符串和列表的转换等方便的处理字符串。后面两道题涉及KMP算法,没有时间,暂时跳过。

posted @ 2024-07-25 12:09  haohaoscnblogs  阅读(20)  评论(0)    收藏  举报