#include "s0038_count_and_say.hpp" string S0038::countAndSay(int n) { if (n == 1) { return "1"; } else if (n <= 0) { return ""; } string prev = countAndSay(n - 1); string result{""}; int len = prev.length(); int pos{0}, start{0}; while (pos < len) { while (pos < len && prev[pos] == prev[start]) { pos++; } result += to_string(pos - start) + prev[start]; start = pos; } return result; }