LeeCode from 0 ——38. Count and Say

Posted ssml

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LeeCode from 0 ——38. Count and Say相关的知识,希望对你有一定的参考价值。

38. Count and Say

The count-and-say sequence is the sequence of integers with the first five terms as following:

1.     1
2.     11
3.     21
4.     1211
5.     111221
6. 312211
7. 13112221
8. 1113213211
解题思路:
1)输入n为0和1时,分别输出相应的值;
2)输入n大于1时,分别判断相连的3个数或者相连的2个数是否相同,若相同输出对应的值,若不同,则输出1加上该数
代码如下:

class Solution {
public:
string countAndSay(int n) {
           vector<string> str(n);
           if(n==0)
                  return "";
          else if(n==1)
                  return "1";
          else{
                 str[0]="1";
                 for(int i=0;i<n-1;i++){
                      int length=str[i].size();
                      str[i+1]="";
                      int j=0;
                      string temp;
                      while(j<length){
                             if( j+2<length && str[i][j]==str[i][j+1] && str[i][j]==str[i][j+2] ){
                                 temp=to_string(3)+str[i][j];
                                 j=j+3;
                              }
                             else if(j+1<length && str[i][j]==str[i][j+1] ){
                                  temp= to_string(2)+str[i][j];
                                  j=j+2;
                              }
                              else{
                                    temp= to_string(1)+str[i][j];
                                    j=j+1;
                              }
                              str[i+1]=str[i+1]+temp;
                      }
                   }
                   return str[n-1];
           }

}
};

 











































以上是关于LeeCode from 0 ——38. Count and Say的主要内容,如果未能解决你的问题,请参考以下文章

LeeCode from 0 —— 67. Add Binary

LeeCode from 0 ——58. Length of Last Word

解题报告Leecode 423. 从英文中重建数字——Leecode每日一题系列

Leecode刷题之旅-C语言/python-28.实现strstr()

Leecode刷题之旅-C语言/python-26.删除数组中的重复项

leecode 85 最大矩形 hard