天天看點

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;
    }