您的位置:首页 > 其它

LeetCode--Count and Say

2015-01-12 00:20 288 查看
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 nth sequence.

Note: The sequence of integers will be represented as a string.

class Solution 
{
public:
    string countAndSay(int n) 
    {
        string temp = "";
        string res="";
        if(n == 0)
            return res;
        int i=2;
        res ="1";
        while(i <= n)
        {
            temp = res;
            res = "";
            int m = temp.length();
            char flag = temp[0];
            int count = 1;
            for(int j=1; j<m; j++)
            {
                if(flag == temp[j])
                    count++;
                else
                {
                    res += (char)(count+48);
                    res += flag;
                    count = 1;
                    flag = temp[j];
                }
            }
            res += (char)(count+48);
            res += flag;
            i++;
        }
        return res;
    }
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: