标签:des style class blog code color
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 };
Leetcode:Count and Say,布布扣,bubuko.com
标签:des style class blog code color
原文地址:http://www.cnblogs.com/soyscut/p/3787564.html