当前位置: 首页 > Web前端 > JavaScript

Leetcode151翻转字符串中的单词

时间:2023-03-27 01:08:04 JavaScript

给你一个字符串s,将字符串中的所有单词一个一个地翻转。单词是由非空白字符组成的字符串。s用至少一个空格分隔字符串中的单词。请返回一个字符串,将s中的单词反转并用一个空格连接。示例1:输入:s="theskyisblue"输出:"blueisskythe"示例2:输入:s="helloworld"输出:"worldhello"解释:输入字符串前后可以包含冗余字符空格,但不能包含反转字符。示例3:输入:s="agoodexample"输出:"examplegooda"解释:如果两个单词之间有多余的空格,则将翻转后的单词之间的空格减少到只有一个。方案一:Regex+JSAPIfunctionreverseWord(s){returns.trim().replace(/\s+/g,"").split("").reverse().join("");}方案二:双端队列双端队列,顾名思义,就是两端都可以入队的队列。解题思路:先去掉字符串左右空格;诸葛读取字符串中的每个单词,依次放入双端队列的头部;然后将队列转换成字符串输出;functionreverseWord(s){letleft=0;让right=s.length-1;让队列=[];让单词=“”;while(s[left]===""){//删除左边的空格left++;}while(s[right]===""){//去掉右边的空格right--;}while(left<=right){constchar=s[left];if(char!==""){//如果当前不为空,则拼接wordword+=char;}elseif(char===""&&word){//如果遍历空字符,则拼接后的词入队//连续的空字符不处理(两个多空格之间的词)queue.unshift(单词);字=“”;左++;}//将最后一个连接的单词放入队列queue.unshift(word);返回queue.join("");}