38. Count and Say

The count-and-say sequence is the sequence of integers beginning as follows:1, 11, 21, 1211, 111221, ...

1 is read off as "one 1" or 11.
11 is read off as "two 1s" or 21.
21 is read off as "one 2 , then one 1" or 1211.
Given an integer n, generate the n th
sequence.
Note: The sequence of integers will be represented as a string.

public class Solution {
    public String countAndSay(int n) {
        if(n<=0)
          return "";
        String curRes = "1";
        int start = 1;
        while(start<n)
        {
            StringBuilder res = new StringBuilder();
            int count = 1;
            for(int i=1;i<curRes.length();i++)
            {
                if(curRes.charAt(i)==curRes.charAt(i-1))
                  count++;
                else
                {
                    res.append(count);
                    res.append(curRes.charAt(i-1));
                    count = 1;
                } 
            }
            res.append(count);  //上面的循环中,只到curRes.length()-2
            res.append(curRes.charAt(curRes.length()-1));//上面的循环中,只到curRes.length()-2
            curRes = res.toString();
            start++;
        }
        return curRes;
    }
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容