LeetCode 394 字串解碼
1.
class Solution {
int index=0;
public String decodeString(String s) {
return analysis(s);
}
public String analysis(String s){
StringBuilder sb = new StringBuilder();
int num=0;
String temp;
while(index<s.length()){
if(s.charAt(index)>='0'&&s.charAt(index)<='9'){
num=num*10+s.charAt(index)-'0';
}else if(s.charAt(index)=='['){
index++;
temp = analysis(s);
while(num-->0) sb.append(temp);
num=0;
}else if(s.charAt(index)==']') break;
else sb.append(s.charAt(index));
index++;
}
return sb.toString();
}
}
舉兩個例子 3[a2[b]] 3[a]2[b]
用的遞迴思想如果遇到“[” ,就把a2[b] 傳進去處理,他會返回一個abb,把abb迴圈3遍就好了
如果是3[a]2[b] 呢? 我就是在這迷住了,注意:在3[ 這裡要遞迴 a]2[b]
在a]2[b]這一層迴圈的時候,遇見a後的]就return了,回到3[這一層迴圈了,他們始終操作的是同一個index,就到了2,所以num要置為0
相關文章
- [Leetcode]394.字串解碼LeetCode字串
- Leetcode-394LeetCode
- LeetCode 394. Decode String All In OneLeetCode
- leetcode:字串相乘(java)LeetCode字串Java
- python字串怎麼解碼?Python字串
- LeetCode_91.解碼方法LeetCode
- c++ LeetCode (初級字串篇) 九道演算法例題程式碼詳解(二)C++LeetCode字串演算法
- LeetCode題解(1668):最大重複子字串(Python)LeetCode字串Python
- leetcode 87 擾亂字串LeetCode字串
- LeetCode-043-字串相乘LeetCode字串
- 【LeetCode】Word Ladder 字串LeetCode字串
- 【LeetCode字串#03】圖解翻轉字串中的單詞,以及對於for使用的說明LeetCode字串圖解
- 用指令碼整理Leetcode題解指令碼LeetCode
- 【ALGO】Leetcode 91.解碼方法GoLeetCode
- LeetCode-091-解碼方法LeetCode
- 【LeetCode】796. 旋轉字串LeetCode字串
- LeetCode初級-反轉字串LeetCode字串
- LeetCode-344-反轉字串LeetCode字串
- LeetCode-415-字串相加LeetCode字串
- LeetCode 567. 字串的排列LeetCode字串
- leetcode —— 字串相關(28、344)LeetCode字串
- Rust中字串的base64編碼與解碼Rust字串
- LeetCode 205. 同構字串LeetCode字串
- 【ALGO】Leetcode 97.交錯字串GoLeetCode字串
- LeetCodet探索——陣列與字串LeetCode陣列字串
- LeetCode-097-交錯字串LeetCode字串
- 【LeetCode】初級演算法:字串LeetCode演算法字串
- LeetCode-824. Goat Latin(字串分割)LeetCodeGo字串
- 【LeetCode 28_字串_匹配】Implement strStr()LeetCode字串
- Oracle 11G OCP 1Z0-053 394Oracle
- 字串-編碼字串
- 字串編碼字串編碼
- LeetCode-459-重複的子字串LeetCode字串
- 每日一道Leetcode——上升下降字串LeetCode字串
- LeetCode-8. 字串轉整數 (atoi)LeetCode字串
- [leetcode 87 擾亂字串] [剪枝搜尋]LeetCode字串
- 【leetcode】leetcode22括號生成通過程式碼及題解LeetCode
- netty系列之:netty中常用的字串編碼解碼器Netty字串編碼