精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

頭條和滴滴的一道面試題:smartRepeat 函數(shù)

開發(fā) 前端
棧(stack)又名堆棧,它是一種運算受限的線性表,僅在表尾能進行插入和刪除操作。這一端被稱為棧頂,相對地,把另一端稱為棧底。

[[402509]]

在講解這道題之前我們先來看下一個數(shù)據(jù)結構:棧,因為我們需要用棧來解決這道題。

棧(stack)又名堆棧,它是一種運算受限的線性表,僅在表尾能進行插入和刪除操作。這一端被稱為棧頂,相對地,把另一端稱為棧底。

向一個棧插入新元素又稱作進棧、入棧或壓棧;從一個棧刪除元素又稱作出棧或退棧。

后進先出(LIFO)特點:棧中的元素,最先進棧的必定是最后出棧,后進棧的一定會先出棧。

JavaScript中,棧可以用數(shù)組模擬。需要限制只能使用push()和pop(),不能使用unshift()和shift()。即,數(shù)組尾是棧頂。

當然,可以用面向對象等手段,將棧封裝的更好。

面試題

這是頭條和滴滴的一道面試題,題目是這樣的:

試編寫“智能重復”smartRepeat函數(shù),實現(xiàn):

  • 將 3[abc] 變?yōu)閍bcabcabc
  • 將 3[2[a]2[b]] 變?yōu)?aabbaabbaabb
  • 將 2[1[a]3[b]2[3[c]4[d]]] 變?yōu)閍bbbcccddddcccddddabbbcccddddcccdddd

不用考慮輸入字符串是非法的情況,比如:

2[a3[b]]是錯誤的,應該補一個1,即2[1[a]3[b]]

[abc]是錯誤的,應該補一個1,即1[abc]

大家一看到這題目,應該想到的用遞歸的方式來做,實際上這道題用遞歸是比較難的。也是能做,但相比棧,棧的方式會簡單的多。

**初學者大坑:**棧的題目和遞歸非常像,這類題目給人的感覺都是用遞歸解題。信心滿滿動手開始寫了,卻發(fā)現(xiàn)遞歸怎么都遞歸不出來。此時就要想到,不是用遞歸,而是用棧。

這道題目我們可以使用兩個棧來解,第一個棧存放數(shù)字,第二個棧存放字符串

這時候可以發(fā)現(xiàn)我們指針只需要遍歷一次就行了,怎么看?

規(guī)則是這樣的子:遍歷到數(shù)字就把數(shù)字壓棧

然后繼續(xù)遍歷,這時遍歷到方括號,或者說是遍歷到數(shù)字和方括號,那么我們就把另一個棧放入一個空字符串 ''。

然后下移,遇到 3,同樣也是壓棧:

然后下移,遇到方括號了,壓入一個空字符串 ''

然后下移,遇到字母 a,那么遇到字母是什么規(guī)則呢,如圖中所示:

然后下移,遇到 ],注意,遍歷到結束的右大括號的時候,是一個非常重要的時間,那這個規(guī)則又是啥呢,如下圖所示:

然后下移遇到 4[,分別把數(shù)字 4 和 空字符串壓入:

然后下移遇到 1[,分別把數(shù)字 1 和 空字符串壓入:

然后下移遇到 b,壓入:

然后下移,遇到結束符 ],分別要 1 和 'b' 彈出來,此時在把 'b' 重復一遍后拼接到第二個棧頂元素

然后下移,遇到 2,同樣的操作:

然后下移遇到 c,直接寫入:

然后下移,遇到結束符 ],分別把 2 和 'c',彈出,此時在把 'c' 重復二遍后拼接到第二個棧頂元素

然后下移,遇到倒數(shù)第二個結束符 ],分別把 4 和 'bccc',彈出,此時在把 'bccc' 重復四四遍后拼接到第二個棧頂元素

然后下移,遇到最后一個結束符 ],分別把 2 和 'aaabccbccbccbcc',彈出,此時在把 'aaabccbccbccbcc' 重復兩遍,這時個就不用拼到上一個元素了,因為已經是最后一個了:

這個答案是不是就是我們最后的答案了,神奇吧~

這時個我們在按上面的流程來演示一上這題:

2[1[a]3[b]2[3[c]4[d]]] 變?yōu)閍bbbcccddddcccddddabbbcccddddcccdddd。

代碼實現(xiàn)

創(chuàng)建 index.js,輸入以下內容:

  1. // 試編寫“智能重復”smartRepeat函數(shù),實現(xiàn): 
  2. // 將3[abc]變?yōu)閍bcabcabc 
  3. // 將3[2[a]2[b]]變?yōu)閍abbaabbaabb 
  4. // 將2[1[a]3[b]2[3[c]4[d]]]變?yōu)閍bbbcccddddcccddddabbbcccddddcccdddd 
  5.  
  6. function smartRepeat(templateStr) { 
  7.   // 指針 
  8.   var index = 0; 
  9.   // 棧1,存放數(shù)字 
  10.   var stack1 = []; 
  11.   // 棧2,存放臨時字符串 
  12.   var stack2 = []; 
  13.   // 剩余部分 
  14.   var rest = templateStr; 
  15.  
  16.   while (index < templateStr.length - 1) { 
  17.     // 剩余部分 
  18.     rest = templateStr.substring(index); 
  19.  
  20.     // 看當前剩余部分是不是以數(shù)字和[開頭 
  21.     if (/^\d+\[/.test(rest)) { 
  22.       // 得到這個數(shù)字 
  23.       let times = Number(rest.match(/^(\d+)\[/)[1]); 
  24.       // 就把數(shù)字壓棧,把空字符串壓棧 
  25.       stack1.push(times); 
  26.       stack2.push(""); 
  27.       // 讓指針后移,times這個數(shù)字是多少位就后移多少位加1位。 
  28.       // 為什么要加1呢?加的1位是[。 
  29.       index += times.toString().length + 1; 
  30.     } else if (/^\w+\]/.test(rest)) { 
  31.       // 如果這個字符是字母,那么此時就把棧頂這項改為這個字母 
  32.       let word = rest.match(/^(\w+)\]/)[1]; 
  33.       stack2[stack2.length - 1] = word; 
  34.       // 讓指針后移,word這個詞語是多少位就后移多少位 
  35.       index += word.length; 
  36.     } else if (rest[0] == "]") { 
  37.       // 如果這個字符是],那么就①將stack1彈棧,②stack2彈棧,③把字符串棧的新棧頂?shù)脑刂貜蛣倓倧棾龅哪莻€字符串指定次數(shù)拼接到新棧頂上。 
  38.       let times = stack1.pop(); 
  39.       let word = stack2.pop(); 
  40.       // repeat是ES6的方法,比如'a'.repeat(3)得到'aaa' 
  41.       stack2[stack2.length - 1] += word.repeat(times); 
  42.       index++; 
  43.     } 
  44.  
  45.     console.log(index, stack1, stack2); 
  46.   } 
  47.  
  48.   // while結束之后,stack1和stack2中肯定還剩余1項。返回棧2中剩下的這一項,重復棧1中剩下的這1項次數(shù),組成的這個字符串。如果剩的個數(shù)不對,那就是用戶的問題,方括號沒有閉合。 
  49.   return stack2[0].repeat(stack1[0]); 
  50.  
  51. var result = smartRepeat("3[2[3[a]1[b]]4[d]]"); 
  52. console.log(result); 

 ~完,我是小智,我們下期見~

 

責任編輯:姜華 來源: 大遷世界
相關推薦

2024-10-11 17:09:27

2011-05-23 11:27:32

面試題面試java

2018-03-06 15:30:47

Java面試題

2009-08-11 10:12:07

C#算法

2023-02-04 18:24:10

SeataJava業(yè)務

2009-08-11 14:59:57

一道面試題C#算法

2022-04-08 07:52:17

CSS面試題HTML

2009-08-11 15:09:44

一道面試題C#算法

2017-11-21 12:15:27

數(shù)據(jù)庫面試題SQL

2023-08-01 08:10:46

內存緩存

2011-06-14 09:12:03

JavaScript

2021-03-16 05:44:26

JVM面試題運行時數(shù)據(jù)

2021-10-28 11:40:58

回文鏈表面試題數(shù)據(jù)結構

2022-02-08 18:09:20

JS引擎解析器

2015-09-02 14:09:19

面試題程序設計

2017-03-10 09:33:16

JavaScript類型

2011-03-02 10:58:16

SQL server入門面試題

2017-09-13 07:15:10

Python讀寫文件函數(shù)

2021-03-27 10:59:45

JavaScript開發(fā)代碼

2018-04-26 11:23:01

Linuxfork程序
點贊
收藏

51CTO技術棧公眾號

99成人在线观看| 国产三区在线视频| 成人在线观看网址| 九九热视频在线免费观看| 北条麻妃一区二区三区在线| 午夜视频在线观看一区| 欧美日韩在线不卡一区| 国产精品久久久久久69| 亚洲大胆在线| 亚洲欧美中文日韩在线| 成人av毛片在线观看| www在线看| 国产欧美日韩另类一区| 97在线资源站| 欧美另类高清videos的特点| 国内精品亚洲| 在线视频国产日韩| 中文字幕天堂av| 国产人妖一区| 欧美日韩中文字幕日韩欧美| 在线一区亚洲| 天堂91在线| 国产一区二区三区视频在线播放| 欧美在线视频观看免费网站| 91网站在线观看免费| 日本高清视频网站| 青青草国产成人av片免费| 欧美精品福利在线| 三级黄色片在线观看| 国产精品视频3p| 91精品国产综合久久福利| 超碰97人人射妻| 污片视频在线免费观看| 国产精品久久久久三级| 免费中文日韩| 天天干,天天操,天天射| 国产精品亚洲午夜一区二区三区| 国产精品h片在线播放| 久久精品女人毛片国产| 2023国产精品久久久精品双| 中文字幕在线看视频国产欧美| 中文字幕精品久久久| **精品中文字幕一区二区三区| 91国内精品野花午夜精品| 阿v天堂2018| 日本精品600av| 一色屋精品亚洲香蕉网站| 日本一区二区三区四区高清视频| 无码国精品一区二区免费蜜桃| 国产激情视频一区二区三区欧美 | 高清视频一区| 国产一区二区三区成人| 蜜桃av一区二区在线观看| 青青a在线精品免费观看| 国产一级做a爰片在线看免费| 99久久99热这里只有精品| 一区二区三区黄色| 亚洲欧洲久久久| 国产欧美日韩| 亚洲午夜久久久影院| 国产精品九九九九九| 婷婷成人影院| 亚洲视频在线观看视频| 亚洲精品午夜视频| 蜜桃成人av| 中文字幕久精品免费视频| 精品人体无码一区二区三区| 日韩国产综合| 另类视频在线观看| 九九久久免费视频| 成人免费在线观看视频| 国产精品久久久久久久免费观看| 欧美精品一区男女天堂| 在线视频 日韩| 亚洲国产欧美日韩在线观看第一区| 日韩高清有码在线| 性欧美一区二区| 精品视频黄色| 欧美成人精品在线视频| 国产 日韩 欧美 成人| 亚洲三级色网| 日本中文字幕成人| 在线观看中文字幕网站| 国产一区二区三区精品欧美日韩一区二区三区 | 99精品久久久久| 亚洲高清不卡| 国产成人黄色av| 国产欧美一级片| 成人精品亚洲人成在线| 久久久7777| 亚洲精品传媒| 亚洲午夜精品一区二区三区他趣| 欧美 日本 亚洲| 日本欧美在线| 欧美成人精品1314www| 亚洲欧美色图视频| 999久久久亚洲| 97人人爽人人喊人人模波多| 欧美一级做a爰片免费视频| 韩国精品一区二区| 久久久久久九九| 国产激情视频在线观看| 精品福利在线视频| 美女网站视频黄色| 国产精品一区二区三区美女| 国产一区二区激情| 国产一级片网址| 日本成人在线一区| 国产美女精品在线观看| 在线免费观看的av网站| 亚洲成av人片一区二区梦乃 | 日本五十熟hd丰满| 毛片一区二区三区| 精品视频一区二区三区四区| 免费在线观看av网站| 欧美日韩另类字幕中文| 色偷偷中文字幕| 日韩成人综合| 5566成人精品视频免费| 精品国产黄色片| 欧美国产97人人爽人人喊| 五十路熟女丰满大屁股| 国产午夜久久av| 中文字幕久热精品在线视频| 亚洲天堂日韩av| 国产精品一级在线| 一区二区三区久久网| 不卡一二三区| 亚洲精品www久久久| 欧美日韩国产精品一区二区三区| 日韩1区2区3区| 久久久神马电影| 99在线视频影院| 日韩精品中文字幕在线不卡尤物 | 婷婷久久国产对白刺激五月99| 91国产精品电影| 亚洲精华国产精华精华液网站| 国产精品护士白丝一区av| 最近免费中文字幕中文高清百度| 久久国产精品免费精品3p| 九九热这里只有在线精品视| 一级特黄aaa大片在线观看| 日本一区二区三区四区| 欧美日韩一区二区在线免费观看| 首页亚洲中字| 18性欧美xxxⅹ性满足| 日韩有码第一页| 亚洲国产成人av网| 99久久久无码国产精品性波多| 午夜精品网站| 99久久无色码| av有码在线观看| 亚洲成人激情图| 久久精品国产亚洲av高清色欲| 成人免费av网站| 少妇高潮毛片色欲ava片| 风间由美中文字幕在线看视频国产欧美 | 魔女鞋交玉足榨精调教| 久久男女视频| 奇米888一区二区三区| 国产精品专区免费| 国产亚洲人成网站在线观看| 91黑人精品一区二区三区| 国产午夜亚洲精品不卡| 热久久精品免费视频| 青草国产精品| 91久久精品国产| 亚洲男同gay网站| 精品日韩一区二区三区| 国产精品老女人| 久久久不卡网国产精品二区| 91看片在线免费观看| 欧美国产一级| 超碰在线97av| 在线天堂新版最新版在线8| 国产一区二区三区三区在线观看 | 日韩欧美一区中文| 久久精品99国产精| 91免费观看国产| 激情五月婷婷久久| 91成人网在线观看| 国语精品免费视频| 成人亚洲欧美| 久久视频中文字幕| 色综合免费视频| 色婷婷综合久久久久中文一区二区| 在线看片中文字幕| 国产成人精品综合在线观看| 男人靠女人免费视频网站| 欧美综合在线视频观看| 91传媒视频免费| 欧美粗大gay| 久久亚洲欧美日韩精品专区| 天堂√在线中文官网在线| 欧美日韩国产精品自在自线| 青娱乐国产在线视频| 久久亚洲精精品中文字幕早川悠里 | 精品欧美黑人一区二区三区| 一级成人黄色片| 尤物在线观看一区| 最近中文字幕在线mv视频在线| 精品一区二区三区香蕉蜜桃| 欧美精品久久久久久久自慰| 日本在线电影一区二区三区| 国产在线精品一区二区中文| 亚洲91在线| 欧美在线激情网| 亚洲第一图区| 中文字幕在线观看日韩| 视频午夜在线| 日韩精品自拍偷拍| 中文字幕在线2019| 日韩欧美成人精品| 国产精品白嫩白嫩大学美女| 国产欧美一区二区三区沐欲| 国产白袜脚足j棉袜在线观看| 久久99精品国产.久久久久久 | 婷婷精品国产一区二区三区日韩| 久久精品国产亚洲5555| 成人激情视频在线播放| 性感美女一区二区在线观看| 国自产精品手机在线观看视频| 欧美18hd| 中文字幕日韩有码| 免费播放片a高清在线观看| 精品日韩99亚洲| 国产按摩一区二区三区| 欧美日韩日日摸| 国产亚洲欧美在线精品| 亚洲sss视频在线视频| 亚洲欧美精品aaaaaa片| 国产精品热久久久久夜色精品三区| 精品人妻一区二区三区日产乱码卜| 国产成+人+日韩+欧美+亚洲| 日韩成人av免费| 免费一区二区视频| 国产精品一区二区羞羞答答| 模特精品在线| 免费看日本毛片| 日韩视频一区二区三区在线播放免费观看| 国产资源第一页| 你懂的视频一区二区| 国产成人精品免费看在线播放| 欧美jizz| 正在播放91九色| 91成人免费| 91视频成人免费| 欧美激情精品久久久六区热门| avove在线观看| 欧美日本在线| 亚洲理论电影在线观看| 激情一区二区| 国产九九九九九| 性感少妇一区| 十八禁视频网站在线观看| 首页亚洲欧美制服丝腿| 国产激情在线观看视频| 亚洲尤物在线| 无人在线观看的免费高清视频| 日本中文字幕一区二区视频| 黄色三级视频在线| 精品综合免费视频观看| 男女视频在线观看网站| 国产盗摄精品一区二区三区在线| 国产调教打屁股xxxx网站| 成人成人成人在线视频| 91精品小视频| 久久久www免费人成精品| 久久精品国产亚洲AV成人婷婷| 中文字幕在线不卡国产视频| 欧美日韩精品亚洲精品| 五月婷婷欧美视频| 亚洲乱码国产乱码精品| 欧美日韩国产美| 亚洲成人一二三区| 亚洲另类xxxx| 毛片在线播放a| 国内成人精品视频| 成人激情综合| 91中文精品字幕在线视频| 51精品国产| 久久久亚洲综合网站| 欧美午夜精彩| avav在线播放| 一本久久综合| 亚洲精品午夜在线观看| 懂色av一区二区三区免费观看| 国产婷婷在线观看| 国产精品视频免费看| 精品99在线观看| 欧美中文字幕一区二区三区亚洲| 国产www视频| 亚洲天堂av在线播放| 中文av资源在线| 日韩av男人的天堂| 亚洲精品一区二区三区中文字幕| 欧美精品人人做人人爱视频| 7777久久香蕉成人影院| 哪个网站能看毛片| 国产成人精品影院| 最新中文字幕av| 亚洲成在线观看| 91成年人视频| 亚洲欧美国产另类| 亚洲性图自拍| 国产精品日韩欧美综合| 久久a爱视频| 日韩一级片一区二区| 石原莉奈在线亚洲二区| 国产伦精品一区二区三区88av| 国产精品日韩精品欧美在线| 国产尤物在线视频| 欧美成人伊人久久综合网| 自拍视频在线免费观看| 韩国日本不卡在线| 精品视频在线播放一区二区三区| 日韩福利视频| 亚洲视频www| 国产精品一区二区在线免费观看| 国产精品久久免费看| 日韩电影在线观看一区二区| 亚洲成人激情图| 欧洲在线视频| 91在线看www| 欧美韩日一区| 天天操天天爽天天射| 91视频免费播放| 日韩欧美亚洲国产| 欧美成人艳星乳罩| 18网站在线观看| 91精品国产综合久久久久久蜜臀| 狠狠做六月爱婷婷综合aⅴ| 欧美一级在线看| 成人激情av网| 国产精品第二十页| 精品剧情在线观看| 羞羞视频在线观看免费| 亚洲一区二区中文| 伊人久久大香线蕉精品组织观看| 自拍偷拍21p| 国产精品久久久久久久岛一牛影视| 国产美女www| 在线午夜精品自拍| 亚洲精品毛片| 一级黄色免费在线观看| 激情成人午夜视频| 日本激情视频一区二区三区| 555www色欧美视频| 黄网站在线免费| 91久久精品一区二区别| 欧美色图麻豆| 特级特黄刘亦菲aaa级| 亚洲午夜久久久| 亚洲色欧美另类| 国产aⅴ夜夜欢一区二区三区| 欧美人与拘性视交免费看| aaa毛片在线观看| 中文字幕av资源一区| 在线观看免费高清视频| 精品国偷自产在线| 欧美高清hd| 欧美日韩成人免费视频| 99精品欧美一区二区蜜桃免费| 亚洲黄色激情视频| 国产一区二区三区在线视频| 欧美v亚洲v综合v国产v仙踪林| 中文字幕综合在线观看| 国产精品原创巨作av| 久久高清免费视频| 亚洲人成电影网站色| 91国拍精品国产粉嫩亚洲一区| 一道精品一区二区三区| 国产成人综合亚洲91猫咪| 日韩av一区二区在线播放| 亚洲欧美国产精品久久久久久久| 欧美成人三级| 亚洲色成人www永久在线观看 | 欧美一区二区三区在线观看| av在线app| 麻豆一区区三区四区产品精品蜜桃| 久久伊人亚洲| 久久免费看少妇高潮v片特黄| 精品国产乱码久久久久久蜜臀| 亚洲精品福利电影| 手机成人av在线| 26uuuu精品一区二区| 国产又粗又猛又黄| 午夜免费在线观看精品视频| 操欧美老女人| 中文字幕天堂网| 欧美无乱码久久久免费午夜一区| 青春草在线视频| 日本不卡一区二区三区在线观看| 国产精品自拍一区| 91精品国产高清一区二区三密臀| 久久综合88中文色鬼| 青青视频一区二区| 青娱乐精品在线| 色婷婷久久久亚洲一区二区三区| 污污网站在线看|