Skip to content
Programming101
Programmingoneonone
  • Home
  • CS Subjects
    • Internet of Things (IoT)
    • Digital Communication
    • Human Values
  • Programming Tutorials
    • C Programming
    • Data structures and Algorithms
    • 100+ Java Programs
    • 100+ C Programs
  • HackerRank Solutions
    • HackerRank Algorithms Solutions
    • HackerRank C problems solutions
    • HackerRank C++ problems solutions
    • HackerRank Java problems solutions
    • HackerRank Python problems solutions
Programming101
Programmingoneonone

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.

leetcode count and say problem solution

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 solutions

Post navigation

Previous post
Next post

Pages

  • About US
  • Contact US
  • Privacy Policy

Programing Practice

  • C Programs
  • java Programs

HackerRank Solutions

  • C
  • C++
  • Java
  • Python
  • Algorithm

Other

  • Leetcode Solutions
  • Interview Preparation

Programming Tutorials

  • DSA
  • C

CS Subjects

  • Digital Communication
  • Human Values
  • Internet Of Things
  • YouTube
  • LinkedIn
  • Facebook
  • Pinterest
  • Instagram
©2025 Programmingoneonone | WordPress Theme by SuperbThemes