自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

每日算法:翻轉(zhuǎn)字符串里的單詞

開(kāi)發(fā) 前端 算法
輸入字符串可以在前面或者后面包含多余的空格,但是反轉(zhuǎn)后的字符不能包括。如果兩個(gè)單詞間有多余的空格,將反轉(zhuǎn)后單詞間的空格減少到只含一個(gè)。

[[423004]]

給定一個(gè)字符串,逐個(gè)翻轉(zhuǎn)字符串中的每個(gè)單詞。

示例 1:

  1. 輸入: "the sky is blue" 
  2. 輸出: "blue is sky the" 

示例 2:

  1. 輸入: "  hello world!  " 
  2. 輸出: "world! hello" 
  3. 解釋: 輸入字符串可以在前面或者后面包含多余的空格,但是反轉(zhuǎn)后的字符不能包括。 

示例 3:

  1. 輸入: "a good   example" 
  2. 輸出: "example good a" 
  3. 解釋: 如果兩個(gè)單詞間有多余的空格,將反轉(zhuǎn)后單詞間的空格減少到只含一個(gè)。 

說(shuō)明:

  • 無(wú)空格字符構(gòu)成一個(gè)單詞。
  • 輸入字符串可以在前面或者后面包含多余的空格,但是反轉(zhuǎn)后的字符不能包括。
  • 如果兩個(gè)單詞間有多余的空格,將反轉(zhuǎn)后單詞間的空格減少到只含一個(gè)。

解法一:正則 + JS API

  1. var reverseWords = function(s) { 
  2.     return s.trim().replace(/\s+/g, ' ').split(' ').reverse().join(' '
  3. }; 

解法二:雙端隊(duì)列(不使用 API)

雙端隊(duì)列,故名思義就是兩端都可以進(jìn)隊(duì)的隊(duì)列

解題思路:

首先去除字符串左右空格

逐個(gè)讀取字符串中的每個(gè)單詞,依次放入雙端隊(duì)列的對(duì)頭

再將隊(duì)列轉(zhuǎn)換成字符串輸出(已空格為分隔符)

畫(huà)圖理解:

代碼實(shí)現(xiàn):

  1. var reverseWords = function(s) { 
  2.     let left = 0 
  3.     let right = s.length - 1 
  4.     let queue = [] 
  5.     let word = '' 
  6.     while (s.charAt(left) === ' 'left ++ 
  7.     while (s.charAt(right) === ' 'right -- 
  8.     while (left <= right) { 
  9.         let char = s.charAt(left
  10.         if (char === ' ' && word) { 
  11.             queue.unshift(word) 
  12.             word = '' 
  13.         } else if (char !== ' '){ 
  14.             word += char 
  15.         } 
  16.         left++ 
  17.     } 
  18.     queue.unshift(word) 
  19.     return queue.join(' '
  20. }; 

 

責(zé)任編輯:武曉燕 來(lái)源: 三分鐘學(xué)前端
相關(guān)推薦

2021-09-03 09:41:36

字符串時(shí)間復(fù)雜度

2016-12-30 13:37:50

字符串算法代碼

2021-08-26 05:08:25

相鄰重復(fù)項(xiàng)算法

2021-09-02 09:22:13

算法無(wú)重復(fù)字符

2013-05-06 10:54:08

字符串字符串匹配KMP算法

2023-12-15 10:27:01

暴力匹配算法Python字符串

2023-02-26 22:33:32

字符串排列算法

2016-12-30 13:32:24

字符串算法代碼

2016-12-30 13:16:51

字符串算法代碼

2013-05-06 10:49:21

Boyer-Moore算法字符串匹配

2021-11-12 09:44:03

字符串算法復(fù)雜度

2023-04-11 08:54:57

字符串匹配算法

2010-09-09 11:48:00

SQL函數(shù)字符串

2009-08-11 10:26:49

C#算法C#字符串反轉(zhuǎn)

2024-07-03 11:23:14

2024-04-01 08:41:39

字符串.NET

2021-03-08 08:23:24

Java字符串截取

2021-12-21 11:39:01

數(shù)據(jù)結(jié)構(gòu)算法同構(gòu)字符串

2010-06-28 15:18:51

SQL Server

2016-12-29 17:14:41

回文串算法代碼
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)