内容简介:Time:2019/4/20Title: Reverse Words In a StringDifficulty: Midumn
Time:2019/4/20
Title: Reverse Words In a String
Difficulty: Midumn
Author: 小鹿
题目:Reverse Words In a String(翻转字符串里的单词)
Given an input string, reverse the string word by word.
给定一个字符串,逐个翻转字符串中的每个单词。
Example 1:
Input: "the sky is blue" Output: "blue is sky the" 复制代码
Example 2:
Input: " hello world! " Output: "world! hello" Explanation: Your reversed string should not contain leading or trailing spaces. 复制代码
Example 3:
Input: "a good example" Output: "example good a" Explanation: You need to reduce multiple spaces between two words to a single space in the reversed string. 复制代码
Note:
- A word is defined as a sequence of non-space characters.
- Input string may contain leading or trailing spaces. However, your reversed string should not contain leading or trailing spaces.
- You need to reduce multiple spaces between two words to a single space in the reversed string.
说明:
- 无空格字符构成一个单词。
- 输入字符串可以在前面或者后面包含多余的空格,但是反转后的字符不能包括。
- 如果两个单词间有多余的空格,将反转后单词间的空格减少到只含一个。
Solve:
▉ 问题分析
所有的单词进行倒序输出,且单词之间的空格只需保留一个,句子前后的空格全部清除。通过题目具体要求,我们已经对问题分析清除,只要解决怎么消除句子前后空格,以及倒序拼接单词,将单词之间的空格数减少至一就可以完成此题作答。
▉ 算法思路
1)跳过句子前所有空格。 2)借助变量反转单词,每遍历到一个字符,在遇到下一个空格之前,为一个完整单词。 3)遇到空格之后,将单词进行倒序拼接。 4)消除尾部的空格。
▉ 测试用例
1)空字符串。 2)中间空格大于 1 的字符串。 3)单词中有标点符号的字符串。
▉ 代码实现
var reverseWords = function(s) { // 判断当前的单词是否为空字符串 if(s.length === 0) return ""; let [index,len] = [0,s.length]; let word = ""; let result = ""; while(index < len){ // 跳过空格 while(index < len && s.charAt(index) == ' '){ index ++; } // 反转单词 while(index < len && s.charAt(index) !== ' '){ word = `${word}${s.charAt(index)}`; index ++; } // 拼接 result = word + ' ' + result; word = ""; } return result.trim(); }; 复制代码
欢迎一起加入到 LeetCode 开源 Github 仓库,可以向 me 提交您其他语言的代码。在仓库上坚持和小伙伴们一起打卡,共同完善我们的开源小仓库! Github:https://github.com/luxiangqiang/JS-LeetCode
欢迎关注我个人公众号:「一个不甘平凡的码农」,记录了自己一路自学编程的故事。
以上所述就是小编给大家介绍的《LeetCode 之 JavaScript 解答第151题 —— 反转字符串中的单词 (Reverse Words in a String)》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:- Leetcode 344:Reverse String 反转字符串(python、java)
- 使用位运算、值交换等方式反转java字符串-共四种方法
- LeetCode 之 JavaScript 解答第344题 —— 反转字符串(Reverse String)
- LeetCode每日一题: 反转字符串中的元音字母(No.345)
- PHP细节:foreach、(汉子)字符串反转、isset,empty用法区别以及0、‘’、null之间关系
- Go数组反转练习
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Making Things See
Greg Borenstein / Make / 2012-2-3 / USD 39.99
Welcome to the Vision Revolution. With Microsoft's Kinect leading the way, you can now use 3D computer vision technology to build digital 3D models of people and objects that you can manipulate with g......一起来看看 《Making Things See》 这本书的介绍吧!