public class Solution {
public String decodeString(String s) {
Stack<Integer> repeattimes=new Stack<>();
Stack<String> res=new Stack<>();
String cur="";
int idx=0;
while(idx<s.length())
{
if(Character.isDigit(s.charAt(idx)))
{
int times=0;
while(Character.isDigit(s.charAt(idx)))
{
times=times*10+(s.charAt(idx)-'0');
idx++;
}
repeattimes.push(times);
}
else if(s.charAt(idx)=='[')
{
res.push(cur);
cur="";
idx++;
}
else if(s.charAt(idx)==']')
{
StringBuilder temp=new StringBuilder(res.pop());
int times=repeattimes.pop();
for(int i=0;i<times;i++)
{
temp.append(cur);
}
cur=temp.toString();
idx++;
}
else
{
cur+=s.charAt(idx);
idx++;
}
}
return cur;
394. Decode String
最新推荐文章于 2020-10-02 04:08:11 发布