LeetCode Count and Say 数数字
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 数数字的更多相关文章
- LeetCode:至少是其他数字两倍的最大数【747】
LeetCode:至少是其他数字两倍的最大数[747] 题目描述 在一个给定的数组nums中,总是存在一个最大元素 . 查找数组中的最大元素是否至少是数组中每个其他数字的两倍. 如果是,则返回最大元素 ...
- leetcode 1.回文数-(easy)
2019.7.11leetcode刷题 难度 easy 题目名称 回文数 题目摘要 判断一个整数是否是回文数.回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数. 思路 一些一定不为回文数的 ...
- 51nod 数数字(水题)
题目链接: 数数字 基准时间限制:1 秒 空间限制:262144 KB 统计一下 aaa ⋯ aaa n个a × b 的结果里面有多少个数字d,a,b,d均为一位数. 样例解释: 3333333333 ...
- java语言将任意一个十进制数数字转换为二进制形式,并输出转换后的结果
package com.llh.demo; import java.util.Scanner; /** * * @author llh * */ public class Test { /* * 将任 ...
- 51nod 1770 数数字
1770 数数字 基准时间限制:1 秒 空间限制:262144 KB 分值: 20 难度:3级算法题 收藏 关注 统计一下 aaa ⋯ aaan个a × b 的结果里面 ...
- 牛客网NOIP赛前集训营-提高组(第一场)B 数数字
数数字 思路: 数位dp 代码: #pragma GCC optimize(2) #pragma GCC optimize(3) #pragma GCC optimize(4) #include< ...
- Carryon 数数字
Carryon 数数字 描述 Carryon 最近迷上了数数字,然后 Starry 给了他一个区间[l,r] ,然后提了几个要求, 需要将 l 到 r 之间的数全部转化成 16 进制,然后连起来. 将 ...
- 每日一道 LeetCode (1):两数之和
引言 前段时间看到一篇刷 LeetCode 的文章,感触很深,我本身自己上大学的时候,没怎么研究过算法这一方面,导致自己直到现在算法都不咋地. 一直有心想填补下自己的这个短板,实际上又一直给自己找理由 ...
- 数数字(JAVA语言)
package 第三章习题; /* * 把前n(n<=10000)个整数顺次写在一起: * 89101112... * 数一数0-9各出现多少次 * (输出10个整数,分别是09出现的次 ...
随机推荐
- C#文件监控工具(对追加内容的监控并输出)
C#文件监控(对追加内容的监控并输出),适合监控某个目录下的日志文件(log),开发初衷是linux上部署在jexus部署网站后想实时输出jexus的log和自己站点的log文件(已经测试通过在mon ...
- Java中的进制
byte bt = (byte) 254; System.out.println("bt = "+bt); /** * 之所以做这个与运算是为了把高位的数据去掉,准确的说是高位的1 ...
- Spring基本原理模拟(IoC部分)
package ioc; import java.io.File; import java.lang.reflect.Method; import java.util.Collections; imp ...
- 解读人:闫克强,Metabolic and gut microbial characterization of obesity-prone mice under high-fat diet(高脂饮食下易胖倾向小鼠的代谢和肠道微生物菌群特征分析)
单位: 上海中医药大学 蚌埠医学院 上海交通大学附属第六人民医院 夏威夷大学癌症中心 第二军医大学 技术:非靶向代谢组学,16S rRNA测序技术 一. 概述: 本研究对小鼠进行高脂饮食,根据体重增长 ...
- 在mac上使用sublime text3搭建opencv3开发环境
安装sublime text3 打开mac终端,安装brew 安装opencv3,终端输入下面的coomand: brew install opencv@3 注意:@3表示安装的版本,如果不加@3,那 ...
- android--系统路径获取
Environment 常用方法: * 方法:getDataDirectory()解释:返回 File ,获取 Android 数据目录.* 方法:getDownloadCacheDirectory( ...
- java线程池之一:创建线程池的方法
在Java开发过程中经常需要用到线程,为了减少资源的开销,提高系统性能,Java提供了线程池,即事先创建好线程,如果需要使用从池中取即可,Java中创建线程池有以下的方式, 1.使用ThreadPoo ...
- 历年NOIP真题总结
前言:最近把历年的NOIP真题肝了一遍(还有3个紫题先咕掉了),主要是到1998年的提高组的题.把题目的做题简要思路搁在这儿,一个是为了考前翻一翻,想想自己的哪些思路要梳理的什么什么的,反正怎么说呢, ...
- webpack分包:vue单页面解决分包【减少首屏加载时间】--按需加载[路由懒加载]
1.使用webpack中的syntax-dynamic-import 插件 npm install --save-dev babel-plugin-syntax-dynamic-import 2.配置 ...
- props简单小栗子
props简单小栗子 可以直接copy查看结果 <!DOCTYPE html> <html lang="en"> <head> <meta ...