38. 外观数列

比如:111221

1、找出相同子串:str[i + 1] == str[i]

2、在每相同子串的最后一位进行记录与更新

 

 1 class Solution 
 2 {
 3 public:
 4     string countAndSay(int n) 
 5     {
 6         string str = "1";
 7         while(--n)
 8         {
 9             int begin = 0,end = 0;
10             string temp;
11             for(int i = 0;i < str.size() - 1;i ++)
12             {
13                 if(str[i + 1] == str[i]) end++;
14                 else
15                 {
16                     temp += to_string(end - begin + 1) + str[end];
17                     begin = ++end;
18                 }
19             }
20             temp += to_string(end - begin + 1) + str[end];
21             str = temp;
22         }
23         return str;
24     }
25 };

 

posted @ 2020-03-17 22:42  Jinxiaobo0509  阅读(135)  评论(0)    收藏  举报