zoukankan      html  css  js  c++  java
  • [LeetCode] 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 nth sequence.

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

    class Solution {
    public:
        string countAndSay(int n) {
            string result("1");
            string pre(result);
            for(int i=1;i<n;i++){
                int len = pre.size();
                result.clear();
                for(int j=0;j<len;){
                    char cur = pre[j];
                    int start = j;
                    j++;
                    while(j<len && cur == pre[j])
                        j++;
                    int end = j;
                    int num = end - start;
                    result += intToS(num);
                    result.push_back(pre[start]);
    
                
                }//end for
               pre = result;
            }//end for
            return result;
        }//end func
    private:
        string intToS(int n){
            ostringstream os;
            os<<n;
            string s;
            s = os.str();
            return s;
        }
    };
  • 相关阅读:
    第二次作业
    第一次作业
    新博客用户·
    李秋红130705010066
    李秋红130705010066
    李秋红130705010066
    李秋红130705010066
    李秋红130705010066
    第五次作业
    第四次作业
  • 原文地址:https://www.cnblogs.com/Xylophone/p/3926005.html
Copyright © 2011-2022 走看看