The count-and-say sequence 实现

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.

class Solution {
public:
    string countAndSay(int n) {
        string res = "1";
        string cur = "1";
            if (1 == n)         return res;
        for (int i=1; i<n; i++)
        {
            res.clear();            //进行下次计算,情况当前
            int nCurLen = cur.size();
            for (int j=0; j<nCurLen; j++)
            {
                int nCount = 1;

                while (cur[j]==cur[j+1] && j+1<nCurLen)
                {
                    ++nCount;       // 计数+1
                    ++j;            // 字符后移
                }

                res += nCount+‘0‘;
                res += cur[j];
                nCount =1;
            }

            cur = res;
        }

        return res;
    }
};

  

时间: 2024-10-17 08:45:03

The count-and-say sequence 实现的相关文章

PrefixSpan序列模式挖掘算法

更多数据挖掘代码:https://github.com/linyiqun/DataMiningAlgorithm 介绍 与GSP一样,PrefixSpan算法也是序列模式分析算法的一种,不过与前者不同的是PrefixSpan算法不产生任何的侯选集,在这点上可以说已经比GSP好很多了.PrefixSpan算法可以挖掘出满足阈值的所有序列模式,可以说是非常经典的算法.序列的格式就是上文中提到过的类似于<a, b, (de)>这种的. 算法原理 PrefixSpan算法的原理是采用后缀序列转前缀序列

BestCoder Round #11 (Div. 2)

太菜,只能去Div2.(都做不完 ORZ... 分别是 HDU: 5054Alice and Bob 5055Bob and math problem 5056Boring count 5057Argestes and Sequence # 1001 碰面只能在坐标中间. 所以判断一下就好了. #include<cstdio> #include<cstring> #include<string> #include<queue> #include<alg

StringBuffer 源码分析

StringBuffer继承了AbstractStringBuilder,我们主要来看下AbstractStringBuilder这个类: AbstractStringBuilder 1).成员 /** * The value is used for character storage. */ char value[]; /** * The count is the number of characters used. */ int count; 2).方法 1.提供了两种构造器 Abstrac

算法(第四版)C#题解&mdash;&mdash;1.3

写在前面 整个项目都托管在了 Github 上:https://github.com/ikesnowy/Algorithms-4th-Edition-in-Csharp 这一节内容可能会用到的库文件有 Generics,同样在 Github 上可以找到. 善用 Ctrl + F 查找题目. 习题&题解 1.3.1 题目 为 FixedCapacityStackOfStrings 添加一个方法 isFull(). 解答 首先是 FixedCapacityStackOfStrings 类,官方 JA

Jmeter_初步认识随笔

1. 简介 Apache JMeter是100%纯java桌面应用程序,被设计用来测试客户端/服务器结构的软件(例如web应用程序).它可以用来测试包括基于静态和动态资源程序的性能,例如静态文件,Java Servlets,Java 对象,数据库,FTP 服务器等等.JMeter可以用来在一个服务器.网络或者对象上模拟重负载来测试它的强度或者分析在不同的负载类型下的全面性能. 另外,JMeter能够通过让你们用断言创建测试脚本来验证我们的应用程序是否返回了我们期望的结果,从而帮助我们回归测试我们

[华为机试真题][2014]63.等式变换

题目 输入一个正整数X,在下面的等式左边的数字之间添加+号或者-号,使得等式成立. 1 2 3 4 5 6 7 8 9 = X 比如: 12-34+5-67+89 = 5 1+23+4-5+6-7-8-9 = 5 请编写程序,统计满足输入整数的所有整数个数. 输入: 正整数,等式右边的数字 输出: 使该等式成立的个数 样例输入:5 样例输出:21 代码 /*--------------------------------------- * 日期:2015-07-06 * 作者:SJF0115 *

python 初级/中级/高级/核心

"一等对象": 满足条件:1.在运行时创建 2.能赋值给变量或数据结构中的元素 3.能作为参数传递给函数 4.能作为函数的返回结果 [ 整数.字符串.字典."所有函数" ]等都是一等对象 "什么是函数"调用:直接使用.不需要类或对象进行调用定义:定义在模块中.类体外作用:数据处理 "什么是方法"调用:不能直接使用.需要类或对象进行调用定义:定义在类体中作用:状态处理.状态(对象的属性.类的属性) "实例方法"

nodejs api 中文文档

文档首页 英文版文档 本作品采用知识共享署名-非商业性使用 3.0 未本地化版本许可协议进行许可. Node.js v0.10.18 手册 & 文档 索引 | 在单一页面中浏览 | JSON格式 目录 关于本文档 稳定度 JSON 输出 概述 全局对象 global process console 类: Buffer require() require.resolve() require.cache require.extensions __filename __dirname module e

[Coding Made Simple] Count Number of Binary Tree Possible given Preorder Sequence

Count Number of Binary Tree Possible given Preorder Sequence. For example, given preorder sequence of {10, 11, 9, 12, 13, 14}, the total possible number of binary trees is 42. Solution 1. Recursion Since we are only trying to find possbile binary tre

38. Count and Say序列 Count and Say

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