44-Count and Say

  1. Count and Say My Submissions QuestionEditorial Solution
    Total Accepted: 79863 Total Submissions: 275285 Difficulty: Easy
    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.

Submission Details
18 / 18 test cases passed.
Status: Accepted
Runtime: 0 ms
beats:69.03%

思路:看懂题目即可,后一个数由前一个数根据规则生成

class Solution {
public:
    string countAndSay(int n) {
        vector<char> vec;
        int i=2;
        string pres("1");
        if(n<=1)return pres;
        pres="11";
        while(i++<n){
            int count=1;
            string s;
            for(int j=0;j<pres.size();++j)
                if(pres[j]==pres[j+1]&&count<9)count++;//<9不知会不会出现大于9个一样数的情况
                else{
                    s.push_back(count+'0');
                    s.push_back(pres[j]);
                    count=1;
                }
            pres = s;
        }
        return pres;
    }
};
原文地址:https://www.cnblogs.com/freeopen/p/5482922.html