Leetcode Count and Say problem solution YASH PAL, 31 July 2024 In this Leetcode Count and Say problem solution we have given a positive integer n, return the nth term of the count-and-say sequence. Problem solution in Python. class Solution(object): def countAndSay(self, n): s0 = '1' for i in range(1, n): s1, k = '', 1 for j in range(1, len(s0)): if s0[j-1] == s0[j]: k += 1 else: s1, k = s1 + str(k) + s0[j-1], 1 s1 += str(k) + s0[-1] s0 = s1 return s0 Problem solution in Java. public String countAndSay(int n) { if(n == 0) return ""; String res = "1"; for(int i = 1; i <n; i++){ String s = res; res=""; int count = 1;// attention for the logic char pre = s.charAt(0); for(int j = 1; j < s.length(); j++){ if(s.charAt(j) == pre) count++; else{ res += count+""+pre; pre = s.charAt(j); count = 1; } } res += count +""+ pre; } return String.valueOf(res); } Problem solution in C++. class Solution { public: string countAndSay(int n) { string temp="1"; string ans=""; if(n==1)return temp; for(int i=2;i<=n;i++) { char value=temp[0]; int count=1; ans=""; for(int j=1;j<temp.size();j++) { if(temp[j]==value)count++; else { ans+=count+'0'; ans+=value; count=1; value=temp[j]; } } ans+=count+'0'; ans+=value; temp=ans; } return ans; } }; Problem solution in C. char* fromLast(char* last) { char *s = last; int count; int index = 0; char *result = (char*) malloc(2 * strlen(last)); while(*s != ' ') { count = 1; while(*s == *(s+1)) { count++; s++; } result[index++] = count + '0'; result[index++] = *(s); s++; } result[index] = ' '; return result; } char* countAndSay(int n) { if(n == 1) return "1"; return fromLast(countAndSay(n-1)); } coding problems