From 9513d5962feb92a0ebc8c614a166b9665e993fb8 Mon Sep 17 00:00:00 2001 From: "exercism-solutions-syncer[bot]" <211797793+exercism-solutions-syncer[bot]@users.noreply.github.com> Date: Sun, 21 Jun 2026 19:18:00 +0000 Subject: [PATCH] [Sync Iteration] cpp/series/1 --- solutions/cpp/series/1/series.cpp | 33 +++++++++++++++++++++++++++++++ solutions/cpp/series/1/series.h | 10 ++++++++++ 2 files changed, 43 insertions(+) create mode 100644 solutions/cpp/series/1/series.cpp create mode 100644 solutions/cpp/series/1/series.h diff --git a/solutions/cpp/series/1/series.cpp b/solutions/cpp/series/1/series.cpp new file mode 100644 index 0000000..6ecf9d2 --- /dev/null +++ b/solutions/cpp/series/1/series.cpp @@ -0,0 +1,33 @@ +#include "series.h" +#include + +using namespace std; + +namespace series { + +vector slice(const string& digits, int n) { + vector result; + int len = static_cast(digits.length()); + + // 1. Fase de Validación en caso de Overflow + if (n <= 0) { + throw domain_error("La longitud de la serie debe ser mayor que cero."); + } + if (len == 0) { + throw domain_error("La cadena de dígitos no puede estar vacía."); + } + if (n > len) { + throw domain_error("La longitud de la serie no puede ser mayor que la cadena original."); + } + + // 2. Fase de Barrido Lineal + // El límite estricto es i <= len - n + for (int i = 0; i <= len - n; ++i) { + // Extrae 'n' caracteres a partir de la posición 'i' + result.push_back(digits.substr(i, n)); + } + + return result; +} + +} diff --git a/solutions/cpp/series/1/series.h b/solutions/cpp/series/1/series.h new file mode 100644 index 0000000..be830f1 --- /dev/null +++ b/solutions/cpp/series/1/series.h @@ -0,0 +1,10 @@ +#pragma once +#include +#include + +namespace series { + + // Función principal para crecar series del string + std::vector slice(const std::string& digits, int n); + +} // namespace series