首页 > 学院 > 开发设计 > 正文

Leetcode-38. Count and Say

2019-11-06 07:07:02
字体:
来源:转载
供稿:网友
题目

本题是将数字从1开始,将当前数字转化为口语对应的数字。比如1口语是1个1,记作11;11读作2个1,记作21;21读作1个2,1个1,记作1211……’1’是第一个数字,根据输入的数字n,计算第n个这样的数字。说起来比较拗口,对照着例子可以感受一下……

思路

从第二个数开始求每个数的字符串,直到求到第n个数

代码

class Solution {public: string countAndSay(int n) { if(n <= 0) return NULL; string ret = "1"; if(n == 1) return ret; else { for(int i = 2; i <= n; i++) ret = countStr(ret); return ret; } } string countStr(string str) { string ret; for(int i= 0; i < str.size(); ) { int count = 0; char cur_c = str[i]; while(cur_c == str[i] && i < str.size()) { i++; count++; } stringstream ss; string scount; ss << count; ss >> scount; ret += scount + string(1, cur_c); } return ret; }};
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表