Count and Say

Solution
Verifying access...

Time Complexity

O(2^n)SPACE_COMPLEXITY: O(2^n)---PYTHON---class Solution:def countAndSay(self, n: int) -> str:s = "1"for _ in range(1, n):next_s = []count = 1for i in range(1, len(s):if s[i] == s[i-1]:count += 1else:next_s.append(str(count)next_s.append(s[i-1])count = 1next_s.append(str(count)next_s.append(s[-1])s = "".join(next_s)return s---END------JAVA---class Solution {public String countAndSay(int n) {String s = "1";for (int i = 1; i < n; i++) {StringBuilder nextS = new StringBuilder();int count = 1;for (int j = 1; j < s.length(); j++) {if (s.charAt(j) == s.charAt(j - 1) {count++;} else {nextS.append(count).append(s.charAt(j - 1);count = 1;}}nextS.append(count).append(s.charAt(s.length() - 1);s = nextS.toString();}return s;}}---END------C++---class Solution {public:string countAndSay(int n) {string s = "1";for (int i = 1; i < n; i++) {string next_s = "";int count = 1;for (int j = 1; j < s.length(); j++) {if (s[j] == s[j - 1]) {count++;} else {next_s += to_string(count) + s[j - 1];count = 1;}}next_s += to_string(count) + s.back();s = next_s;}return s;}};---END------JAVASCRIPT---/@param {number} n@return {string}*/var countAndSay = function(n) {let s = "1";for (let i = 1; i < n; i++) {let nextS = "";let count = 1;for (let j = 1; j < s.length; j++) {if (s[j] === s[j - 1]) {count++;} else {nextS += count + s[j - 1];count = 1;}}nextS += count + s[s.length - 1];s = nextS;}return s;};---END---

Space Complexity

O(2^n)---PYTHON---class Solution:def countAndSay(self, n: int) -> str:s = "1"for _ in range(1, n):next_s = []count = 1for i in range(1, len(s):if s[i] == s[i-1]:count += 1else:next_s.append(str(count)next_s.append(s[i-1])count = 1next_s.append(str(count)next_s.append(s[-1])s = "".join(next_s)return s---END------JAVA---class Solution {public String countAndSay(int n) {String s = "1";for (int i = 1; i < n; i++) {StringBuilder nextS = new StringBuilder();int count = 1;for (int j = 1; j < s.length(); j++) {if (s.charAt(j) == s.charAt(j - 1) {count++;} else {nextS.append(count).append(s.charAt(j - 1);count = 1;}}nextS.append(count).append(s.charAt(s.length() - 1);s = nextS.toString();}return s;}}---END------C++---class Solution {public:string countAndSay(int n) {string s = "1";for (int i = 1; i < n; i++) {string next_s = "";int count = 1;for (int j = 1; j < s.length(); j++) {if (s[j] == s[j - 1]) {count++;} else {next_s += to_string(count) + s[j - 1];count = 1;}}next_s += to_string(count) + s.back();s = next_s;}return s;}};---END------JAVASCRIPT---/@param {number} n@return {string}*/var countAndSay = function(n) {let s = "1";for (let i = 1; i < n; i++) {let nextS = "";let count = 1;for (let j = 1; j < s.length; j++) {if (s[j] === s[j - 1]) {count++;} else {nextS += count + s[j - 1];count = 1;}}nextS += count + s[s.length - 1];s = nextS;}return s;};---END---