现在的位置: 首页 > 综合 > 正文

Count and Say

2019年11月10日 ⁄ 综合 ⁄ 共 541字 ⁄ 字号 评论关闭

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 covert(string s){
       char p = s[0];
       int cnt = 1;
       string ans;
       for(int i = 1; i <= s.size(); i++){
              if(s[i] == p)
                  cnt++;
              else {
                char tmp  = cnt + '0';
                ans =ans + tmp + p;
                cnt = 1;
                p = s[i];
              }
       }
       return ans;
    }
    string countAndSay(int n) {
        string ss = "1";
        for(int i = 1; i < n; i++)
            ss = covert(ss);
            return ss;      
    }
};
【上篇】
【下篇】

抱歉!评论已关闭.