首页 > 其他分享 >Day9 字符串Part2

Day9 字符串Part2

时间:2024-07-25 12:06:45浏览次数:14  
标签:空格 Day9 反转 len 单词 Part2 words 字符串

任务

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算法,没有时间,暂时跳过。

标签:空格,Day9,反转,len,单词,Part2,words,字符串
From: https://www.cnblogs.com/haohaoscnblogs/p/18322708

相关文章

  • 如何通过在字符串中使用 \u 或 \U 转义来正确表示 python3 (3.6.1+) 中的补充 unico
    最近我正在学习python,在python3中遇到了unicode转义文字的问题。似乎像Java一样,\u转义被解释为Java使用的UTF-16代码点,但问题来了:例如,如果我尝试放置3个字节的utf-8字符,例如“♬”(https://unicode-table.com/en/266C/),甚至是补充unicode字符,例如“......
  • 字符串的相关案例和string库函数的使用
    字符串的存储特性:在存储过程中字符串都会在末尾自动添加一个结尾标志符\0                 来表示字符串结束字符串的定义方式有两种:方式一:利用字符数组+双引号的方式定义字符串例如:charstr[4]=“abc”;注意:这里的数组长度要么......
  • C++自学笔记16(字符串与字符串字面量)
    当我们想在电脑上以文本方式表示东西时,一个单词、一个句子、一大段文章都叫做字符串。字符串就是为了我们去处理文字文本的方法。字符串实际上就是字符组成的数组或指针(数组就是指针的一种)。(有人会问数组不是储存数字么?怎么储存字符?因为ASCLL码表将所有字母、数字、符号翻译......
  • binascii.Error:无效的 base64 编码字符串:数据字符数 (41) 不能多于 1 4 的倍数
    我正在尝试使用py-vapid、pywebpush和django-push-notifications通过Webpush发送通知。当我尝试从django管理网站发送测试通知时,我在控制台中收到此回溯日志:|InternalServerError:/djangoadmin/push_notifications/webpushdevice/......
  • Python XML 解析:字符串中的“<”被阻塞
    我有一个使用ET.XMLParser来解析CppCheckXML报告文件的Python模块。当尝试解析字符串中包含“<”的XML元素中的属性之一时,它会令人窒息,它会将其解释为格式错误的XML,例如:<errormsg="Includefile<iostream>notfound.">(注意字符和“iostream”之间的空格必须放......
  • 刷题了:344.反转字符串|541. 反转字符串II|卡码网:54.替换数字
    344.反转字符串题目链接:https://leetcode.cn/problems/reverse-string/description/文章讲解:https://programmercarl.com/0344.%E5%8F%8D%E8%BD%AC%E5%AD%97%E7%AC%A6%E4%B8%B2.html视频讲解:https://www.bilibili.com/video/BV1fV4y17748/?spm_id_from=333.788&vd_sou......
  • JAVA小白自学日记Day9
     1.序列化序列化版本号:serialVersionUID,是一个类的序列化版本号。如果在反序列化时,类的serialVersionUID与序列化时的版本号不匹配,那么会抛出 InvalidClassException 异常,表示类的版本不兼容,无法进行反序列化。如果流量没有定义,JDK会自动给与一个版本号,当该类发生变化(......
  • STM32中断方式发送字符串的两种方法(判断TC和TXE)
    以前一直是用查询方式发送字符串的。今天研究了下手册,看到两个标志位TC和TXE,两种判断方式均可用。先说TC。即TransmissionComplete。发送一个字节后才进入中断,这里称为“发送后中断”。和原来8051的TI方式一样,都是发送后才进中断,需要在发送函数中先发送一个字节触发中断。发......
  • 如何构建超大字符串
    1、使用StringBuilder或StringBuffer:StringBuilder和StringBuffer是Java中用于构建字符串的可变类。它们允许你在一个字符序列上追加和插入字符,而不需要创建新的对象。StringBuilder是线程不安全的,但在单线程环境下性能更好;而StringBuffer是线程安全的,但性能稍差。示例:St......
  • 构建超大字符串的示例
    publicclassLargeStringBuilderExample{publicstaticvoidmain(String[]args){//预估的字符串大小(仅作为示例,实际情况可能更大)intestimatedSize=10_000_000;//假设为1000万个字符//创建一个StringBuilder对象,并预估容量......