這道題比較直觀的聯想到使用棧來處理,我的思路是:
遍歷字串,從左往右依次入棧,遇到能合併的先合併然後加入棧
比如232[asc]33[ass]
先把232、asc、33、ass拼成乙個字串加入棧中
遇到乙個右括號就開始往外彈,至於彈多少個元素判斷棧頂是不是左括號
如果當前棧頂是左括號,我們需要彈出兩次棧,取出需要增加多少倍的那個數字,**寫的比較簡單,應該挺好理解
public
static string decodestring
(string s)
stack.
add(num)
;//把這個數加入棧
}else
if(middle.
matches
("[a-z]"
)|| middle.
equals
("["
)|| middle.
matches
("[a-z]"))
stack.
add(ele)
;//把這個字母串加入棧}}
else
if(middle.
equals
("]"))
stack.
add(temp)
;//再放回棧中}}
while
(!stack.
empty()
)return res;
}
day04 資料寬度
第4節 資料寬度 資料寬度 在上節課了解0和1的關係,同時計算機儲存資料,不是無限制可以儲存任意資料的,在我們現實中只儲存乙個數字的話,要麼把數字寫到本子上或記錄到腦子裡,那麼把它看成無限大的,但是在計算機中不是這樣的由於計算機受到硬體的約束,我們在儲存資料的時候它是有長度限制的。我們稱這個長度的限...
Day04 迴圈結構
如果在程式中我們需要重複的執行某條或某些指令,例如用程式控制機械人踢足球,如果機械人持球而且還沒有進入射門範圍,那麼我們就要一直發出讓機械人向球門方向奔跑的指令。當然你可能已經注意到了,剛才的描述中其實不僅僅有需要重複的動作,還有我們上乙個章節講到的分支結構。再舉乙個簡單的例子,比如在我們的程式中要...
遊戲開發Day04
1.建立球體物件,給球體新增剛體,材質,然後新增到預製體中。2.在相機的射擊指令碼中重寫重寫update方法 public transform newobject void update 3.銷毀子彈物件 在子彈的預製體中新增指令碼 void rotate 向右旋轉 if input.getkey ...