天天看点

leetcode第38题(计数和发言)

题目:count-and-say序列是前五项为整数的序列(还是没懂)

  1. 1
  2. 11
  3. 21
  4. 1121
  5. 111221

1 被读作 “one 1” (“一个一”) , 即 11。

11 被读作 “two 1s” (“两个一”), 即 21。

21 被读作 “one 2”, “one 1” (“一个二” , “一个一”) , 即 1211。

public String countAndSay(int n) {
        if(n == 1){          
            return "1";     
        }        //递归调用,然后对字符串处理   
        String str = countAndSay(n-1) + "*";//为了str末尾的标记,方便循环读数  
        char[] c = str.toCharArray();    
        int count = 1;       
        String s = "";      
        for(int i = 0; i < c.length - 1;i++){    
            if(c[i] == c[i+1]){        
                count++;//计数增加         
            }else{          
                s = s + count + c[i];//上面的*标记这里方便统一处理       
                count = 1;//初始化      
            }     
        }     
        return s;
    }