筆試算法須知---用JS實(shí)現(xiàn)棧處理問題

使用js實(shí)現(xiàn)stack

棧的性質(zhì):先進(jìn)后出森篷,只能在棧頂插入和刪除

這就是一個(gè)棧
function Stack() {
      this.stackData = []; //保存棧內(nèi)元素兼吓,初始化為一個(gè)空數(shù)組陶因;
      this.top = 0;//棧頂位置步绸,初始為0;
      this.push = push;//入棧
      this.pop = pop;//出棧
      this.peek = peek;//查看棧頂元素
      this.clear = clear;//清空棧
      this.length = length;//棧內(nèi)存放的元素個(gè)數(shù)
}
function push(element){
      this.stackData[this.top++] = element;
}
function pop(){
      return this.stackData[--this.top];
}
function length(){
      return this.top;
}
function peek(){
      return this.stackData[this.top-1];
}
function clear(){
      this.top = 0;
}

/*測試stack的實(shí)現(xiàn) */

var s = new Stack();
s.push("aa");
s.push("bb");
s.push("cc");
console.log(s.length());//3
console.log(s.peek());//cc
var popped = s.pop();
console.log(popped);//cc
console.log(s.peek());//bb

之前有道某雷的前端筆試題就是需要用到j(luò)s實(shí)現(xiàn)棧來處理問題
題目大概就是:給你一個(gè)括號(hào)字符串显拜,字符串中含有()[]{},然后判斷該字符串中的括號(hào)是否合法匹配衡奥。

樣例輸入:
( [ { ] } )
輸出:不合法
樣例輸入:
( [ ] { ( ) } )
輸出:合法

function MatchBracket(BracketString){//函數(shù)名:匹配括號(hào),參數(shù):括號(hào)字符串
var s = new Stack();
var bs = Array.from(BracketString);
for(var i=0;i<bs.length-1;i++){
  switch(bs[i]){
      case '{':
      case '[':
      case '(':
          s.push(bs[i]);//凡是左括號(hào)通通入棧
          break;
      case ')':
      case ']':
      case '}':
          var topEle = s.pop();
          if((topEle=="(" && bs[i]==")") || (topEle=="[" && bs[i]=="]") || (topEle=="{" && bs[i]=="}")){
             break;
             //判斷左括號(hào)與右括號(hào)是否能匹配上
          }else{
            console.log("不合法");
            return;
          }
  }
}
      if(s.top==0){
          return "合法";
      }else{
          return "不合法";
      }
}

完整代碼見Github:

https://github.com/edisonchan97/JS-algorithm/blob/master/%E5%8C%B9%E9%85%8D%E6%8B%AC%E5%8F%B7%E4%BB%A3%E7%A0%81

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末远荠,一起剝皮案震驚了整個(gè)濱河市矮固,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌譬淳,老刑警劉巖档址,帶你破解...
    沈念sama閱讀 217,277評(píng)論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異邻梆,居然都是意外死亡守伸,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,689評(píng)論 3 393
  • 文/潘曉璐 我一進(jìn)店門浦妄,熙熙樓的掌柜王于貴愁眉苦臉地迎上來尼摹,“玉大人见芹,你說我怎么就攤上這事〈览裕” “怎么了玄呛?”我有些...
    開封第一講書人閱讀 163,624評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長和二。 經(jīng)常有香客問我徘铝,道長,這世上最難降的妖魔是什么惯吕? 我笑而不...
    開封第一講書人閱讀 58,356評(píng)論 1 293
  • 正文 為了忘掉前任惕它,我火速辦了婚禮,結(jié)果婚禮上废登,老公的妹妹穿的比我還像新娘淹魄。我一直安慰自己,他們只是感情好钳宪,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,402評(píng)論 6 392
  • 文/花漫 我一把揭開白布揭北。 她就那樣靜靜地躺著扳炬,像睡著了一般吏颖。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上恨樟,一...
    開封第一講書人閱讀 51,292評(píng)論 1 301
  • 那天半醉,我揣著相機(jī)與錄音,去河邊找鬼劝术。 笑死缩多,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的养晋。 我是一名探鬼主播衬吆,決...
    沈念sama閱讀 40,135評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢(mèng)啊……” “哼绳泉!你這毒婦竟也來了逊抡?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,992評(píng)論 0 275
  • 序言:老撾萬榮一對(duì)情侶失蹤零酪,失蹤者是張志新(化名)和其女友劉穎冒嫡,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體四苇,經(jīng)...
    沈念sama閱讀 45,429評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡孝凌,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,636評(píng)論 3 334
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了月腋。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片蟀架。...
    茶點(diǎn)故事閱讀 39,785評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡瓣赂,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出片拍,到底是詐尸還是另有隱情钩述,我是刑警寧澤,帶...
    沈念sama閱讀 35,492評(píng)論 5 345
  • 正文 年R本政府宣布穆碎,位于F島的核電站牙勘,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏所禀。R本人自食惡果不足惜方面,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,092評(píng)論 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望色徘。 院中可真熱鬧恭金,春花似錦、人聲如沸褂策。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,723評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽斤寂。三九已至耿焊,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間遍搞,已是汗流浹背罗侯。 一陣腳步聲響...
    開封第一講書人閱讀 32,858評(píng)論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留溪猿,地道東北人钩杰。 一個(gè)月前我還...
    沈念sama閱讀 47,891評(píng)論 2 370
  • 正文 我出身青樓,卻偏偏與公主長得像诊县,于是被迫代替她去往敵國和親讲弄。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,713評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容