Leetcode23: Count and Say

The count-and-say sequence is the sequence of integers beginning as follows:1, 11, 21, 1211, 111221, …

1is read off as"one 1"or11.11is read off as"two 1s"or21.21is read off as"one 2, thenone 1"or1211.

Given an integern, generate thenthsequence.

Note: The sequence of integers will be represented as a string.

class Solution {public:string countSay(string &str){str.append("0");stringstream ss;int count = 0;char temp = str[0];for(int i = 0; i < str.size(); i++){if(str[i] == temp)count++;else{ss << count << temp;count = 1;temp = str[i];}}return ss.str();}string countAndSay(int n) {string str = "1";for(int i = 1; i < n; i++){str = countSay(str);}return str;}};之所以末尾追加一个0,是为了防止当前字符串的末尾是连续的n个相同的数,导致判断到末尾时依旧执行count++但是不写入stream流里。

,经验是由痛苦中粹取出来的

Leetcode23: Count and Say

相关文章:

你感兴趣的文章:

标签云: