LintCode 第420题 报数
来源:互联网 发布:编写c语言用什么软件 编辑:程序博客网 时间:2024/05/19 03:23
题目描述:
报数指的是,按照其中的整数的顺序进行报数,然后得到下一个数。如下所示:
1, 11, 21, 1211, 111221, ...
1
读作 "one 1"
-> 11
.
11
读作 "two 1s"
-> 21
.
21
读作 "one 2, then one 1"
-> 1211
.
给定一个整数 n
, 返回 第 n
个顺序。
注意事项
整数的顺序将表示为一个字符串。
给定 n = 5
, 返回 "111221"
.
其实这道题最难得是不好理解,先看下面的规律:
- n = 1,result = "1",这是初始数据
- n = 2,result = "11",意味着上一个报数的结果是 "1个1"
- n = 3,result = "21",意味着上一个报数的结果是 "2个1"
- n = 4,result = "1211",意味着上一个报数的结果是 "1个2、1个1"
- n = 5,result = "111221",意味着上一个报数的结果是 "1个1、1个2、2个1"
实现代码:
#include <iostream>using namespace std;string reportCount(int n) { // write your code here if (n <= 0) { return string(""); } string result("1");//初始值 装每次遍历后的值 for (int i = 1; i < n; i++) {//按从1到n来遍历每次产生的值 string temp; int count = 1, j; for (j = 0; j < result.size() - 1; j++) { if (result[j] == result[j + 1]) { //count统计上次值相等的个数 count++; } else{ temp += ('0' + count);//如果不重复 则1个result[j] temp += result[j]; count = 1; } } if (j > 0 && result[j] == result[j - 1]) { //temp临时结果保存count数和具体重复值 temp += ('0' + count); temp += result[j]; } else if (j == 0) {//针对第一次初始值做操作1个1 temp += '1'; temp += result[j]; } else { temp += '1';//针对最后一个数做1个result[j] 追加到temp上 temp += result[j]; } result = temp; } return result;}int main(int argc, const char * argv[]) { // insert code here... std::cout << "Hello, World!\n"; string value = reportCount(4); return 0;}
阅读全文
0 0
- LintCode 第420题 报数
- lintCode(420)——报数
- lintcode python代码 420 报数
- LintCode:报数
- lintcode ----报数
- 报数-lintcode
- lintcode,报数
- lintcode--报数
- 报数-LintCode
- lintcode 报数
- 报数(LintCode)
- LintCode之报数
- 容易 报数 (lintcode)
- lintcode 第12题
- LintCode 第423题
- lintcode 报数(Count and Say) (Java)
- (lintcode)第3题统计数字
- (lintcode)第17题 子集
- Halcon部分算子整理说明
- “白加黑”远控木马技术分析及手杀方案
- 第九周java作业
- IntelliJ IDEA主题设置
- 区块链,是否是解决互联网信用和诚信问题的良药
- LintCode 第420题 报数
- Github开源项目网址 Retrofit2+Rxjava2+DataBindding+MVVM
- PHP-获取目录中的所有文件和子目录
- intellij下将springboot项目打成war包发布到远程tomcat服务器上
- TensorFlow- win+anaconda环境import包错误(error: .dll not found类问题)
- 把中缀表达式转化为后缀表达式
- PANDAS 数据合并与重塑(concat篇) 原创 2016年09月13日 19:26:30 47784 pandas作者Wes McKinney 在【PYTHON FOR DATA ANALYS
- Python 将成高考科目,并列入全国计算机等级考试
- 8.1 分析并写出下面程序的运行结果