首页 > 代码库 > Leetcode:Count and Say
Leetcode:Count and Say
Description:
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.
分析:这道题目就是一模拟,从1开始,根据读音来产生新的序列,计算第n个字符串是什么。这里主要是一点:在写代码的时候
觉得有重复的部分,臃肿了一些,然后再室友的指导下,加了一个标示字符使代码更简洁。两个都贴上
1 class Solution { 2 public: 3 string countAndSay(int n) { 4 string nows = "1"; 5 stringstream itos; 6 7 for(int i=2;i<=n;i++) 8 { 9 char nowc = nows[0];10 int count =1;11 string read,scount;12 for(int j=1;j<nows.size();j++)13 {14 if(nows[j]==nowc)15 count++;16 else{17 itos<<count;18 itos>>scount;19 itos.clear();20 read = read+scount+nowc;21 count = 1;22 nowc = nows[j];23 }24 }25 itos<<count;26 itos>>scount;27 itos.clear();28 nows = read +scount +nowc;29 30 }31 return nows;32 }33 };
1 class Solution { 2 public: 3 string countAndSay(int n) { 4 string nows = "1e"; 5 stringstream itos; 6 7 for(int i=2;i<=n;i++) 8 { 9 char nowc = nows[0];10 int count =1;11 string read,scount;12 for(int j=1;j<nows.size();j++)13 {14 if(nows[j]==nowc)15 count++;16 else{17 itos<<count;18 itos>>scount;19 itos.clear();20 read = read+scount+nowc;21 count = 1;22 nowc = nows[j];23 }24 }25 nows = read +‘e‘;26 27 }28 string result(nows.begin(),nows.end()-1);29 return result;30 }31 };
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。