Count and Say

问题:1,11,21,1211,111221。输出这类字符窜,1211的后面那个字符窜就是解释这个字符窜,1个1,1个2,2个1 
分析:每次数字符窜,当数到s[j]和前一个不同的话就进行记录

class Solution {
public:
    string countAndSay(int n) {
        int k=0,i,j;
        string s1,s2;
        s1+='1';

        for(i=1;i<n;i++)
        {
            //cout<<s1<<endl;
            s2.clear();
            int sum=0,c=-3;
            for(j=0;j<s1.size();j++)
            {
                if(j!=0 && s1[j]!=c)
                {
                    s2+=sum+'0';
                    s2+=c;
                    sum=0;
                }
                c=s1[j];
                sum++;
            }
            s2+=sum+'0';
            s2+=c;
            s1=s2;
        }
        return s1;
    }
};

  

posted @ 2014-08-07 09:12  calmound  阅读(177)  评论(0编辑  收藏  举报