首页 > 其他分享 >151. 反转字符串中的单词(中)

151. 反转字符串中的单词(中)

时间:2024-01-30 16:25:56浏览次数:30  
标签:151 空格 示例 反转 单词 str 字符串

目录

题目

  • 给你一个字符串 s ,请你反转字符串中 单词 的顺序。
    单词 是由非空格字符组成的字符串。s 中使用至少一个空格将字符串中的 单词 分隔开。
    返回 单词 顺序颠倒且 单词 之间用单个空格连接的结果字符串。
    注意:输入字符串 s中可能会存在前导空格、尾随空格或者单词间的多个空格。返回的结果字符串中,单词间应当仅用单个空格分隔,且不包含任何额外的空格。

示例 1:

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

示例 2:

输入:s = " hello world "
输出:"world hello"
解释:反转后的字符串中不能存在前导空格和尾随空格。

示例 3:

输入:s = "a good example"
输出:"example good a"
解释:如果两个单词间有多余的空格,反转后的字符串需要将单词间的空格减少到仅有一个。

法一、双指针

class Solution:
    def reverseWords(self, s: str) -> str:
        s = s.strip() # 删除首尾空格
        i = j = len(s) - 1
        res = []#存储结果
        while i >= 0:
            while i >= 0 and s[i] != ' ': i -= 1 # 搜索首个空格
            res.append(s[i + 1: j + 1]) # 添加单词
            while s[i] == ' ': i -= 1 # 跳过单词间空格
            j = i # j 指向下个单词的尾字符
        return ' '.join(res) # 用空格拼接并返回

法二、字符串常用操作

  • strip() 用于移除字符串开头和结尾的空白字符(包括空格、制表符、换行符等),括号内可填参数,默认为空格
  • split() 用于将字符串分割成子字符串列表,,括号内可填参数,默认为空格
  • join() 用于将一个可迭代的字符串对象(如列表或元组)连接成一个单一的字符串。
class Solution:
    def reverseWords(self, s: str) -> str:
        s = s.strip() # 删除首尾空格
        strs = s.split() # 分割字符串
        strs.reverse() # 翻转单词列表
        return ' '.join(strs) # # 用空格拼接为字符串并返回

标签:151,空格,示例,反转,单词,str,字符串
From: https://www.cnblogs.com/lushuang55/p/17997298

相关文章

  • C# - 使用 Spire.PDF 将HTML网页、网页内容、HTML字符串转换为PDF
    将HTML转换为PDF可实现格式保留、可靠打印、文档归档等多种用途,满足不同领域和情境下的需求。本文将通过以下两个示例,演示如何使用第三方库Spire.PDFfor.NET和QT插件在C#中将Html网页(URL)或HTML字符串转为PDF文件。 HTML转PDF所需工具:1.Spire.PDFfor.NET首先需要安装S......
  • C# - 将HTML网页、HTML字符串转换为PDF
    将HTML转换为PDF可实现格式保留、可靠打印、文档归档等多种用途,满足不同领域和情境下的需求。本文将通过以下两个示例,演示如何使用第三方库Spire.PDFfor.NET和QT插件在C#中将Html网页(URL)或HTML字符串转为PDF文件。 HTML转PDF所需工具:1.Spire.PDFfor.NET首先需要安装Sp......
  • B2135 单词替换 (变式)
    点击查看代码#include<bits/stdc++.h>usingnamespacestd;chars[210],a[110],b[110];intla,lb,ls,nowtop,nowend=-1,nowoutput=1;intmain(){while(1){charnow_input;scanf("%c",&now_input);if(now_input==�......
  • pdf转base64字符串及base64字符串反转pdf
    pdf转base64//转base64publicStringfileToBase64(){//StringimgFilePath="C:\\Users\\zlf\\Desktop\\pdf\\042002200211_87910810.pdf";StringimgFilePath="C:\\Users\\zlf\\Desktop\\pdf\\【高德打车-38.65元......
  • 编程常用单词
    freedomsilence沉默;寂静;无声;callofsilencefree自由的;免费的;空闲的;免税的;自然的,不拘束的;Youwillknowyou'rereborntonight你会知道今晚你重生Mustbealright,butIstaybyyourside肯定没事,但我会陪在你身边基本单词://Javabean,POJO,Domain,en......
  • uniapp ArrayBuffer转16进度字符串 以及 十六进制转ASCII码
    1.ArrayBuffer转16进度字符串//ArrayBuffer转16进度字符串示例//ab2hex(buffer){//consthexArr=Array.prototype.map.call(//newUint8Array(buffer),//function(bit){//......
  • 字符串
    $\largeBorder:若字符串同长度的前缀和后缀完全相同,即Prefix[i]=suffix[i],称此前(后)缀为字符串的一个Border$重要性质 $\largep是S的周期\Leftrightarrow|S|-p是S的Border$$\large所以求周期等价于求Border,Border不具备二分性$$\largeS的Border的Border也是......
  • 查询表、视图字符串字段的长度
    SELECTa.colorder字段序号,a.name字段名,b.name类型,CASEWHENCOLUMNPROPERTY(a.id,a.name,'PRECISION')=-1THEN',长度无限制'ELSE',长度限制'+CAST(COLUMNPROPERTY(a.id,......
  • C#正则提取字符串中的数字
    首先需要引入命名空间System.Text.RegularExpressions,具体实现如下所示://提取纯数字,该方式会将所有数字提取出来并拼接在一起,如:"ABC#123@AS456测试"提取出来就是123456varresult1=Regex.Replace("ABC#123@AS测试",@"[^0-9]+","");//提取多个数字,该方式会分别提取字符串中......
  • C#中根据传入的字符串字段返回实体Lambda表达式
    我们在操作实体的时候,经常会使用到Lambda表达式,如下所示就是对实体IOT_Sample的CrtTime进行操作:varret=NestExtension.GetSort<IOT_Sample>(m=>m.CrtTime,true);但是往往有些时候我们具体的业务只告诉我们该实体的某个字段名称(字符串类型的),这个时候我们就需要根据传过来......