博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
LeetCode 38 Count and Say(计数与报数)
阅读量:5771 次
发布时间:2019-06-18

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

翻译

计数报数序列按如下规律开始递增:1,11,21,1211,111221,……1 读作“1个1”或11.11 读作“2个1”或21.21 读作“1个2,1个1”或1211.给定一个整数n,生成第n个序列。备注:数字序列应该用字符串表示。

原文

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) {        if(n == 1)            return "1";        string result = "1";        for(int i = 1; i < n; ++i) {            result = convert(result);        }        return result;    }    string convert(string str) {        int len = str.length();        if(len == 1) return "1" + str;        string result;        int count = 1;        for(int i = 1; i < len; ++i) {            if(str[i-1] == str[i]) count++;            else {                result = result + static_cast
(count + '0') + str[i-1]; count = 1; } if(i == len - 1) result = result + static_cast
(count + '0') + str[i]; } return result; }};

然后自己写了这个……

class Solution {
public: string countAndSay(int n) { if (n == 1) { return "1"; } else { string output = countAndSay(n - 1), result = ""; int index = 0; while (index < output.size()) { char current = output[index]; int cursor = index, count = 0; while (output[cursor] == current && cursor < output.size()) { cursor++; count++; } char number = count + '0'; result += number; result += current; index += count; } return result; } }};

转载地址:http://mkpux.baihongyu.com/

你可能感兴趣的文章
MindNode使用
查看>>
SQL Server 2016 Alwayson新增功能
查看>>
HTTP库Axios
查看>>
CentOS7下安装python-pip
查看>>
认知计算 Cognitive Computing
查看>>
左手坐标系和右手坐标系 ZZ
查看>>
陀螺仪主要性能指标
查看>>
Java 架构师眼中的 HTTP 协议
查看>>
Linux 目录结构和常用命令
查看>>
Linux内存管理之mmap详解 (可用于android底层内存调试)
查看>>
利润表(年末)未分配利润公式备份
查看>>
Android开发中ViewStub的应用方法
查看>>
gen already exists but is not a source folder. Convert to a source folder or rename it 的解决办法...
查看>>
HDOJ-2069Coin Change(母函数加强)
查看>>
遍历Map的四种方法
查看>>
Altium Designer 小记
查看>>
【Linux高级驱动】I2C驱动框架分析
查看>>
赵雅智:js知识点汇总
查看>>
二维有序数组查找数字
查看>>
20个Linux服务器性能调优技巧
查看>>