博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Leetcode题目:Count and Say
阅读量:6715 次
发布时间:2019-06-25

本文共 1051 字,大约阅读时间需要 3 分钟。

题目: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.

题目解答:从这个题目中可以很简单的看出,第n个序列得到的字符串与第(n-1)个字符串之间的关系密不可分。为了得到第n个序列,需要从第一个开始向后依次迭代至n。另外需要做的一件事情,就是统计相同的字符出现了几次,为此,设置一个临时变量count。

代码如下:

class Solution {

public:
    string countAndSay(int n) {
        string res = "1";
        if(n <= 0)
            return "";
        else
        {
            convertToString(res,n);
            return res;
        }
    }
   
    void convertToString(string &res, int n)
    {
        for(int i = 1;i < n;i++)
        {
            stringstream res_tmp;
            res_tmp.clear();
            int len = res.length();
            char last = res[0];
            int j = 1;
            int count = 1;
            while(true)
            {
                while((j < len) && (res[j] == last))
                {
                    count++;
                    j++;
                }
                res_tmp << count;
                res_tmp << last;
                if(j < len)
                    last = res[j];
                else
                    break;
                count = 0;
            }
            res = res_tmp.str();
           
        }
    }
};

注意初始时将count置为1,后续设置其值时,设置它为0。

转载于:https://www.cnblogs.com/CodingGirl121/p/5413934.html

你可能感兴趣的文章
曾经的代码系列——AJAX和JSON生成下拉列表框
查看>>
百度地图API 应用实例
查看>>
起泡排序和快速排序
查看>>
抛砖引玉:使用二进制位操作,解决铁道部火车票的数据查询和存储问题,超轻量级的解决方案...
查看>>
深入理解JavaScript系列(结局篇)
查看>>
SPSS中八类常用非参数检验之一:总体分布的卡方(Chi-square)检验
查看>>
【经典网页设计】原来404错误页面可以这样设计
查看>>
IoC模式
查看>>
【java】eclipse配置tomcat碰到的问题
查看>>
vim 的多窗口, tab 切换_yuhui_bear_百度空间
查看>>
poj2481
查看>>
ECSHOP的lbi库文件中添加广告位的方法
查看>>
Splay树学习
查看>>
Kinect for Windows SDK开发学习相关资源
查看>>
Android 类中类广播的静态注册方法
查看>>
Requests库上传文件时UnicodeDecodeError: 'ascii' codec can't decode byte错误解析
查看>>
MapReduce中,new Text()引发的写入HDFS的输出文件多一列的问题
查看>>
Windows Phone本地数据库(SQLCE):8、DataContext(翻译)
查看>>
SGU 406 Goggle
查看>>
〖Linux〗Shell十进制数值转换十六进制
查看>>