From 6bb7b68394ebebbc69e76bee59e9351386115453 Mon Sep 17 00:00:00 2001 From: Syndamia Date: Sun, 14 Dec 2025 21:56:30 +0200 Subject: feat(Week11): Add solutions --- Week11/Exercise10.cpp | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 Week11/Exercise10.cpp (limited to 'Week11/Exercise10.cpp') diff --git a/Week11/Exercise10.cpp b/Week11/Exercise10.cpp new file mode 100644 index 0000000..4f42b06 --- /dev/null +++ b/Week11/Exercise10.cpp @@ -0,0 +1,31 @@ +#include + +int main() { + const unsigned LINE_SIZE = 1024; + + char line[LINE_SIZE]; + std::cin.getline(line, LINE_SIZE); + + // char е 8 битово, което означава че има 2^^8 = 256 + // на брой различни възможни стойности. + // Знаем, че всяка буква всъщност е едно число, затова + // можем директно да го използваме като индекс. + + bool encountered[256] = { 0 }; + for (unsigned i = 0; line[i] != '\0'; i++) + encountered[line[i]] = true; + + // Всички малки букви са отместени с 32 спрямо главните. + // Тоест, главна буква + 32 = съответната малка буква + + bool isPangram = true; + for (char ch = 'A'; isPangram && ch <= 'Z'; ch++) + isPangram = encountered[ch] || encountered[ch + 32]; + + if (isPangram) + std::cout << "Pangram" << std::endl; + else + std::cout << "Not a pangram" << std::endl; + + return 0; +} -- cgit v1.3.1-23-gd82d