美文网首页
394. Decode String

394. Decode String

作者: SummerDreamEve | 来源:发表于2018-04-23 08:17 被阅读0次

思路

使用递归-找出括号里的内容再继续放入decode,用count计数确认是最外层“【”“】”

代码

class Solution {
    public String decodeString(String s) {
        StringBuilder sb = new StringBuilder();      
         for(int i=0;i<s.length();i++){
            if(Character.isDigit(s.charAt(i))){
                int begin_number = i;
                while(s.charAt(i)!='['){
                    i++;
                }
                int number = Integer.valueOf(s.substring(begin_number,i));
                int begin_str = i+1;
                int count = 1;
                i++;
                while(count !=0){
                   if(s.charAt(i)=='['){
                       count++;
                       
                   }
                   if(s.charAt(i)==']'){
                       count--;
                   }
                    i++;                  
                }
                i--;
                String sub = decodeString(s.substring(begin_str,i));//在这递归
                for(int j=0;j<number;j++){
                    sb.append(sub);
                }
                
            }  
            else{
                sb.append(s.charAt(i));
                
            }
        }
        return sb.toString();
        
    }
      
}

相关文章

网友评论

      本文标题:394. Decode String

      本文链接:https://www.haomeiwen.com/subject/ufhklftx.html