武威市市建设局网站建筑业管理网站ie不兼容
news/
2025/9/26 16:10:20/
文章来源:
武威市市建设局网站建筑业管理,网站ie不兼容,营销导向的企业网站建设步骤,不使用域名做网站#x1f3b6;Leetcode 151. 反转字符串中的单词
难度#xff1a;中等
✨题目描述#xff1a;
给你一个字符串 s #xff0c;请你反转字符串中 单词 的顺序。
单词 是由非空格字符组成的字符串。s 中使用至少一个空格将字符串中的 单词 分隔开。
返回 单词 顺序颠倒且 …Leetcode 151. 反转字符串中的单词
难度中等
✨题目描述
给你一个字符串 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
解释如果两个单词间有多余的空格反转后的字符串需要将单词间的空格减少到仅有一个。提示
1 s.length 104s 包含英文大小写字母、数字和空格 s 中 至少存在一个 单词
进阶 如果字符串在你使用的编程语言中是一种可变数据类型请尝试使用 O(1) 额外空间复杂度的 原地 解法。
方法一 使用内置API
使用字符串的split(’ )方法将原字符串以空格分隔开返回分开后的数组使用数组的filter() 方法 过滤掉空格使用数组的reverse()方法 翻转数组使用数组的join(‘’) 方法 将数组转为字符串
代码
var reverseWords function (s) {return s.split( ).filter(e { if (e ! ) { return e } }).reverse().join( )}❤️执行结果 方法二 双指针
思路
除去首尾空格倒序遍历字符串 s记录单词左右索引边界 left , right 。每确定一个单词的边界则将其添加至新数组newArr里面。最终将新数组newArr拼接为字符串并返回即可。
循环执行
索引 left 从右向左搜索首个空格添加单词s[left1,right1] 至newArr索引 left 跳过两单词间的所有空格执行 right left 使right指向下个单词的尾字符
代码 var reverseWords function (s) {s s.trim() // 除去首尾空格 let arr Array.from(s) // 将字符串s转为数组let newArr [] // 用来存储结果let right s.length, left right - 1 //定义两个指针 right指向末尾 left指向末尾的前一位while (left 0) {while (left 0 arr[left] ! ) { left-- } // left从右向左搜索首个空格newArr.push(arr.slice(left 1, right 1).join()) // 找到首个空格位置之后,截取出这个单词s[left1,right1] 使用join()将其转为字符串 存至newArrwhile (left 0 arr[left] ) { left-- } // 跳过两单词间的所有空格right left //使 right 指向下个单词的尾字符}return newArr.join( ) // 将结果转为字符串并返回 注意这里join( ) 是以空格为分割 把每个单词分隔开}执行结果
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/918512.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!