当前位置: 首页 > news >正文

wamp环境下做网站免费的关键词挖掘工具

wamp环境下做网站,免费的关键词挖掘工具,重庆南川网站制作价格,做高档衣服的网站提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 leetcode.186.反转字符串中的单词 leetcode.186.反转字符串中的单词 https://leetcode.cn/problems/reverse-words-in-a-string-ii/ 给你一个字符数组 s &#xf…

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • leetcode.186.反转字符串中的单词


leetcode.186.反转字符串中的单词

https://leetcode.cn/problems/reverse-words-in-a-string-ii/

给你一个字符数组 s ,反转其中 单词 的顺序。

单词 的定义为:单词是一个由非空格字符组成的序列。s 中的单词将会由单个空格分隔。

必须设计并实现 原地 解法来解决此问题,即不分配额外的空间。

示例 1:

输入:s = [“t”,“h”,“e”," “,“s”,“k”,“y”,” “,“i”,“s”,” “,“b”,“l”,“u”,“e”]
输出:[“b”,“l”,“u”,“e”,” “,“i”,“s”,” “,“s”,“k”,“y”,” ",“t”,“h”,“e”]

思路:
先把全体字符全部反转,然后找到每个空格之间的单词,反转每个单词

class Solution:def reverseWords(self, s: List[str]) -> None:"""Do not return anything, modify s in-place instead."""def reverse(s_list):if len(s_list)==1:return s_listleft = 0right = len(s_list)-1while left < right:s_list[left], s_list[right] = s_list[right], s_list[left]left += 1right -= 1return s_listreverse(s)if len(s) == 1:return sex_left = 0ex_right = 1while ex_right<len(s):if s[ex_right] != " " :ex_right += 1else:s[ex_left:ex_right] =  reverse(s[ex_left:ex_right])ex_left = ex_right + 1ex_right += 1s[ex_left:ex_right] =  reverse(s[ex_left:ex_right])

在Python中,字符串是不可变(immutable)的,这意味着一旦一个字符串被创建,你不能改变这个字符串的内容。但是,列表(list)是可变的(mutable),这意味着你可以改变列表中的元素。
在你提供的代码中,你正在处理一个字符串列表 s。下面是关于你的代码的一些解释,以及何时列表的原始值会被修改,何时不会:

  1. 函数 reverse(s_list)
    • 这个函数接收一个列表 s_list,并在原地(in-place)反转这个列表。这意味着 s_list 的原始值会被修改,因为列表是可变的。
  2. 调用 reverse(s)
    • 当你调用 reverse(s) 时,列表 s 的内容会被反转。由于 reverse 函数是原地修改列表,所以 s 的原始值会被改变。
  3. 切片赋值
    • 表达式 s[ex_left:ex_right] = reverse(s[ex_left:ex_right]) 是将 s 列表中的一个切片替换为另一个反转后的切片。这同样会修改原始列表 s
      总的来说,由于列表是可变的,任何对列表的修改(如元素赋值、切片赋值、方法调用如 list.append()list.extend() 等)都会改变原始列表。
      需要注意的是,虽然列表本身是可变的,但如果你在列表中存储的是字符串,那么这些字符串本身是不可变的。例如,如果你尝试 s[0][0] = 'a',这将会引发错误,因为你不能修改字符串的某个字符。但你可以通过赋值来替换整个字符串,例如 s[0] = 'another_string',这将修改列表 s 的第一个元素。
      最后,代码中的注释 # Do not return anything, modify s in-place instead. 表明这个函数的目的是修改传入的列表 s,而不是返回一个新的列表。根据你的代码逻辑,原始的列表 s 会被就地修改。

第26行修改成这样就会失败:
reverse(s[ex_left:ex_right])
这是为什么?

当你调用 reverse(s[ex_left:ex_right]) 而不是使用切片赋值,你确实调用了 reverse 函数,该函数会原地修改传入的列表。然而,s[ex_left:ex_right] 是一个列表的切片,它创建了一个新的列表(这个新列表是原始列表 s 的一个子集的浅拷贝),然后你将这个新列表传递给了 reverse 函数。
以下是为什么这样做不会修改原始列表 s 的原因:

  • 列表的切片操作返回一个新的列表,即使原始列表是可变的。
  • 当你将这个切片传递给 reverse 函数时,实际上你是在反转这个新列表,而不是原始列表 s
  • 由于新列表与原始列表 s 是独立的,所以对新列表的修改不会影响原始列表。
    为了修改原始列表 s,你需要使用切片赋值,像这样:
s[ex_left:ex_right] = reverse(s[ex_left:ex_right])

这个表达式将反转后的新列表(reverse(s[ex_left:ex_right]) 的结果)赋值给原始列表 s 的相应切片位置,从而修改了原始列表 s
所以,为了达到你的目的,你应该保留原来的切片赋值方式,而不是仅仅调用 reverse(s[ex_left:ex_right])

http://www.yidumall.com/news/86095.html

相关文章:

  • 有什么做分销的几个网站湖北seo公司
  • 在哪个网站做跨境电商百度号码认证平台个人号码申诉
  • 手机自适应网站源码长沙seo 优化选智投未来no1
  • 安阳网站建设报价浏览器下载
  • wordpress调用新版媒体库北京seo优化排名推广
  • 临清网站开发网站排名掉了怎么恢复
  • 一个人做网站设计兼职sem是什么方法
  • 凡客网站可以建设会员系统吗推广策略都有哪些
  • 2008iis搭建网站启信聚客通网络营销策划
  • 怎么把网站做seo到首页收录好的网站有哪些
  • 响应式网站建设公司‘营销自动化
  • 宾爵手表官方网站公司注册流程
  • 广州市政府门户网站建议小学生简短小新闻摘抄
  • 电子网站模板长沙seo代理
  • html做网站怎么链接音乐推广普通话绘画
  • 做众筹网站怎么赚钱网站安全检测
  • 新手做亚马逊要逛哪些网站360推广登录平台
  • 香港房地产网站站长全网指数查询
  • 财经网站建设湛江今日头条新闻
  • wordpress抓取微信文章seo优化培训课程
  • 西安微信网站开发青岛官网优化
  • 站长工具 怎么做网站地图seo排名的影响因素有哪些
  • 网站怎么盈利最近国际时事热点事件
  • 网站中的表单怎么做怎么建网站教程图解
  • 用nas建设服务器网站百度推广管家登录
  • 网站模板怎么做下载百度手机助手
  • 代驾软件开发流程seo公司发展前景
  • 杭州建设主管部门的网站关键词优化工具有哪些
  • 海外注册域名的网站员工培训
  • 专业制作pptseo快速推广