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>scount;19 itos.clear();20 read = read+scount+nowc;21 count = 1;22 nowc = nows[j];23 }24 }25 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>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 };