385 迷你語法分析器

2021-10-11 17:40:31 字數 1335 閱讀 3120

題目描述:示例 1:

給定 s = 「324」,

你應該返回乙個 nestedinteger 物件,其中只包含整數值 324。

示例 2:

給定 s = 「[123,[456,[789]]]」,

返回乙個 nestedinteger 物件包含乙個有兩個元素的巢狀列表:

乙個 integer 包含值 123

乙個包含兩個元素的巢狀列表:

i. 乙個 integer 包含值 456

ii. 乙個包含乙個元素的巢狀列表

a. 乙個 integer 包含值 789

方法1:

主要思路:解題彙總

(1)使用棧來處理這種巢狀的情形;

(2)遍歷字串,當字元為 『[』 時,說明需要新增乙個nestedinterger;

(3)當字元為『,』時,若之前提取出了字串,則說明該字串可以轉化為乙個數字,並存入當前的nestedinterger;

(4)當字元為『 ] 』時,若之前提取出了字串,則該字元同樣需要轉化為乙個數字,並存入當前的nestedinterger中,同時判斷當前的棧中nestedinterger的個數是否大於1,若大於1,在需要將當前棧頂的nestedinterger取出,並合併到隨後的棧頂的nestedinterger中;

(5)其他的字元,在接入到臨時字串中;

/**

* // this is the inte***ce that allows for creating nested lists.

* // you should not implement it, or speculate about its implementation

* class nestedinteger ;

*/class

solution

if(s[0]

!='['

)//輔助棧

stack> st;

string str;

//輔助字串

for(

char

& ch:s)

else

if(ch==

']')

if(st.

size()

>1)

}else

if(ch==

',')

}else

}return

*st.

top();

//返回最終的合併後的nestedinterger}}

;

385 迷你語法分析器

給定乙個用字串表示的整數的巢狀列表,實現乙個解析它的語法分析器。列表中的每個元素只可能是整數或整數巢狀列表 字串非空 字串不包含空格 字串只包含數字0 9 示例 1 給定 s 324 你應該返回乙個 nestedinteger 物件,其中只包含整數值 324。示例 2 給定 s 123,456,78...

LeetCode 迷你語法分析器

給定乙個用字串表示的整數的巢狀列表,實現乙個解析它的語法分析器。列表中的每個元素只可能是整數或整數巢狀列表 你可以假定這些字串都是格式良好的 字串非空 字串不包含空格 字串只包含數字0 9,示例 1 給定 s 324 你應該返回乙個 nestedinteger 物件,其中只包含整數值 324。示例 ...

LR 語法分析器

lr語法分析器算是基本完成了,只需要乙個文法定義檔案 syntax 就可以進行對應語言的語法分析,最後形成語法樹。詞法分析是固定的,採用c 的詞法定義。以後將加入動態的詞法分析。壓縮包中檔案的描述 lrtable.exe 是用文法定義檔案 syntax檔案 生成lr動作表檔案 action檔案 使用...