python3翻转字符串里的单词

python3翻转字符串里的单词

151. 翻转字符串里的单词

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

说明:

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

示例 1:

输入:“the sky is blue”
输出:“blue is sky the”
示例 2:

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

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

输入:s = ” Bob Loves Alice “
输出:“Alice Loves Bob”
示例 5:

输入:s = “Alice does not even like bob”
输出:“bob like even not does Alice”

思路1:
传统思路:先使用strip()函数将首尾空格去掉;特别注意,中间的空格可能不止一个。采用双指针,从后遍历字符串,遇到的第一个空格,回退一个到j的位置就会取出一个字符串。
在这里插入图片描述
在这里插入图片描述

class Solution:
    def reverseWords(self, s: str) -> str:
        s = s.strip()
        i = len(s)-1
        j = i+1
        resverse = []
        while i>=0:
            while i >= 0 and s[i] != ' ': i -= 1 
            resverse.append(s[i + 1: j]) 
            while s[i] == ' ': i -= 1 
            j = i+1
        return ' '.join(resverse).strip()

思路2:
在这里插入图片描述

class Solution:
    def reverseWords(self, s: str) -> str:
        s = s.strip()
        s = s.split()
        s.reverse()
        return ' '.join(s)
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/100102.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • pipeline流水线框架_流水线主动轮设计

    pipeline流水线框架_流水线主动轮设计流水线设计就是将组合逻辑系统地分割,并在各个部分(分级)之间插入寄存器,并暂存中间数据的方法。目的是将一个大操作分解成若干的小操作,每一步小操作的时间较小,所以能提高频率,各小操作能并行执行,所以能提高数据吞吐率(提高处理速度)。缺点:功耗增加,面积增加,硬件复杂度增加,特别对于复杂逻辑如cpu的流水线而言,流水越深,发生需要hold流水线或reset流水线的情况时,时间损失越大。…

    2022年8月14日
    4
  • 04 _ 可扩展架构案例(一):电商平台架构是如何演变的?[通俗易懂]

    04 _ 可扩展架构案例(一):电商平台架构是如何演变的?[通俗易懂]本章,我就针对最近十几年电商平台的架构变化过程,来具体说明下,为了支持业务的快速发展,架构是如何一步步演进的。从2003年淘宝上线开始,国内电商平台经历了高速的发展,在这个过程中,系统遇到了很多的挑战,比如说:如何针对当前的业务现状,选择合适的架构呢?如何在业务发展过程中,升级改造架构,并保证系统的平滑过渡呢?接下来,我会结合自己的工作实践,和你一起探讨架构的演变历程,你可以从中了解到各种架构的优劣点和适用性,然后在实际工作中选择合适的架构。这里,我总结了国内电商平台架构发展的大致过程,你可以结合图片

    2022年6月16日
    33
  • IntelliJ IDEA配置Maven详解[通俗易懂]

    IntelliJ IDEA配置Maven详解[通俗易懂]1.下载Maven官方地址:http://maven.apache.org/download.cgi目前最新版是apache-maven-3.8.3版本,我当时使用的是apache-maven-3.5.2版本,大家也可以下载最新版本。Apache-maven-3.5.2下载地址:http://archive.apache.org/dist/maven/maven-3/下载后的版本如下:解压并新建一个本地仓库文件夹:2.配置本地仓库路径在MAVE_HOME/conf/setti

    2025年6月1日
    2
  • redis scan命令_redis 查询命令

    redis scan命令_redis 查询命令我们可能会遇到需要运行的某些命令在godis中不存在的情况,这个时候我们可以使用其原生的方式运行命令,为了方便使用,封装了一个方法,用于简化这个过程。需要注意的是,执行命令的返回结果返回的是interface{},需要对其进行解析成可读的实体结构。传递的参数logger是用来打印日志的://RunRedisCmd运行redis命令funcRunRedisCmd(redis*godis.Redis,logger*log.Logger,cmdstring,args…string)

    2022年10月8日
    3
  • 【Linux + Makefile】Makefile中的.PHONY作用以及赋值运算(各种=符号)的区别

    【Linux + Makefile】Makefile中的.PHONY作用以及赋值运算(各种=符号)的区别【Linux+Makefile】Makefile中的.PHONY作用以及赋值运算(各种=符号)的区别,本文带你了解一下!

    2022年6月14日
    33
  • JAVA统计服务器资源(cpu,内存,磁盘)–LINUX

    JAVA统计服务器资源(cpu,内存,磁盘)–LINUX标题JAVA统计服务器资源(cpu,内存,磁盘)–LINUX使用类:com.sun.management.OperatingSystemMXBean继承:java.lang.management.OperatingSystemMXBeanJDK版本1.8API说明项目用的jdk是1.8,接口也能调,不知道为什么1.8的api里没有这个类,只有这个类继承的java.lang.management.OperatingSystemMXBean的API,在JDK13API中找到想要的东西了模

    2022年6月10日
    87

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号