class Solution {
public:
string countAndSay(int n) {
if(n==) return "";
string str0="",str1="";
int i,t,count;
char c='*';
for(i=;i<n-;i++){ //一共要数n-1次,假如n=2,那么只要数str1这一次就行了
count=;
if(i%!=){ //i为奇数,数str0
c=str0[];
str1="";
while(c!='\0'){ //将str0 转到str1
t=;
if(str0[count]!='\0'){
while(str0[count]==c){ //判断前一个字符串里有多少个同样的,记录为count+1次
count++; //记录读出串的位置
t++; //记录相同字的个数
}
str1=str1+char(t+''); //记录到str1中
str1=str1+c;
c=str0[count++];
}
else{
str1=str1+char(t+''); //记录到str1中
str1=str1+c;
c='\0';
}
}
}
else{ //i为偶数,数str1
c=str1[];
str0="";
while(c!='\0'){ //将str0 转到str1
t=;
if(str1[count]!='\0'){
while(str1[count]==c){ //判断前一个字符串里有多少个同样的,记录为count+1次
count++; //记录读出串的位置
t++; //记录相同字的个数
}
str0=str0+char(t+''); //记录到str1中
str0=str0+c;
c=str1[count++];
}
else{
str0=str0+char(t+''); //记录到str1中
str0=str0+c;
c='\0';
}
}
}
}
if(n%==)
return str0;
else
return str1;
}
};

题意:

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.

当n=1时,返回1;

当n=2时,返回11;  //数n-1时所返回的数,就是1个1的意思

当n=3时,返回21;  //也就是数n=2时所要返回的数,就是两个1;

当n=4时,返回1211;  //可以看到n=3时返回的是21,有一个2和一个1,即1211

。。。。。

类推下去,格式是这样子的     [多少个][什么样的字符][多少个][什么样的字符]。。。。

思路:

用两个字符串,从n=1开始数,完了存到一个字符串,这个字符串的内容就是n=2所需要返回的。再数这个字符串里的东西,存到另一个字符串。

控制好数的次数就行了,问题不大。

LeetCode Count and Say 数数字的更多相关文章

  1. LeetCode:至少是其他数字两倍的最大数【747】

    LeetCode:至少是其他数字两倍的最大数[747] 题目描述 在一个给定的数组nums中,总是存在一个最大元素 . 查找数组中的最大元素是否至少是数组中每个其他数字的两倍. 如果是,则返回最大元素 ...

  2. leetcode 1.回文数-(easy)

    2019.7.11leetcode刷题 难度 easy 题目名称 回文数 题目摘要 判断一个整数是否是回文数.回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数. 思路 一些一定不为回文数的 ...

  3. 51nod 数数字(水题)

    题目链接: 数数字 基准时间限制:1 秒 空间限制:262144 KB 统计一下 aaa ⋯ aaa n个a × b 的结果里面有多少个数字d,a,b,d均为一位数. 样例解释: 3333333333 ...

  4. java语言将任意一个十进制数数字转换为二进制形式,并输出转换后的结果

    package com.llh.demo; import java.util.Scanner; /** * * @author llh * */ public class Test { /* * 将任 ...

  5. 51nod 1770 数数字

    1770 数数字 基准时间限制:1 秒 空间限制:262144 KB 分值: 20 难度:3级算法题  收藏  关注 统计一下 aaa ⋯ aaan个a × b 的结果里面 ...

  6. 牛客网NOIP赛前集训营-提高组(第一场)B 数数字

    数数字 思路: 数位dp 代码: #pragma GCC optimize(2) #pragma GCC optimize(3) #pragma GCC optimize(4) #include< ...

  7. Carryon 数数字

    Carryon 数数字 描述 Carryon 最近迷上了数数字,然后 Starry 给了他一个区间[l,r] ,然后提了几个要求, 需要将 l 到 r 之间的数全部转化成 16 进制,然后连起来. 将 ...

  8. 每日一道 LeetCode (1):两数之和

    引言 前段时间看到一篇刷 LeetCode 的文章,感触很深,我本身自己上大学的时候,没怎么研究过算法这一方面,导致自己直到现在算法都不咋地. 一直有心想填补下自己的这个短板,实际上又一直给自己找理由 ...

  9. 数数字(JAVA语言)

    package 第三章习题; /*  * 把前n(n<=10000)个整数顺次写在一起:  * 89101112...  * 数一数0-9各出现多少次  * (输出10个整数,分别是09出现的次 ...

随机推荐

  1. 引用静态资源的url添加版本号,解决版本发布后的浏览器缓存有关问题

    在日常的工作中,我们经常会遇到页面文件(html,jsp等)中引用的js,css,图片等被修改后,而浏览器依然缓存着老版本的文件,客户一时半会看不到修改后的效果,同时也给生产环境的版本发布带来了一些问 ...

  2. <base target="_self"/>标签的用法

    语法 <base target="value"> 属性值 值 描述 _blank 在新窗口中打开被链接文档. _self 默认.在相同的框架中打开被链接文档. _par ...

  3. 关于.net中的身份认证(AuthorizeAttribute)的问题

    引言 新公司当初面试的时候问了我很多用户验证的问题,这里就把我的对于验证的想法写一下,希望可以有一个系统的学习记录. 一.如何验证 B/S结构的请求是http请求,个人理解的http请求有两个特点:1 ...

  4. C#类和类的实例

    类 ,顾名思义就是分类.类别的意思.我们要面向对象编程,就需要对不同的事物进行分类.类可以说是.net面向对象的核心. 类:就是具有相同的属性和功能的对象的抽象的集合. 1.类的定义  <访问修 ...

  5. Word课程笔记(秋叶系列课程)

    课时010[视频]01 别说你会Word,你可能用错了! # 贯通三个核心: 大量重复的工作懂得批量处理:反复要做的固定操作固化成“模板”“套路”:碰到异常情况知道准确高效的解决: # 三个问题: 文 ...

  6. 数据绑定—Source(绑定到静态类的静态属性)

    <UserControl x:Class="绑定.绑定Source" xmlns="http://schemas.microsoft.com/winfx/2006/ ...

  7. 图解SSH上传安装eclipse

    安装eclipse 步骤: 1.SSH上传eclipse tar文件 2.linux下Computer-->FilesSystem-->soft显示上传的压缩包 3.解压eclipse文件 ...

  8. IT兄弟连 JavaWeb教程 jQuery对AJAX的支持经典面试题

    1.简述对Ajax的理解 AJAX是Asynchronous JavaScript and Xml异步的JavaScript和Xml.它一种用来改善用户体验的技术其实质是使用XMLHttpReques ...

  9. PJzhang:英国通信总部GCHQ开源产品-网络瑞士军刀CyberChef

    猫宁!!! 参考链接:https://www.4hou.com/info/news/981.html 这个产品免费开源易用,如果称之为网络瑞士军刀,没什么异议. github地址:https://gi ...

  10. ACM-ICPC 2018 南京赛区网络预赛 B. The writing on the wall (暴力)

    题意:一个n*m的方格矩阵,有的格子被涂成了黑色,问该矩阵中有多少个子矩阵,子矩阵不包含黑色格子; 思路:对于一个长为L, 高为H的无黑点矩阵中包含的高为H的子矩阵个数为L+(L-1)+(L-2)+. ...