exercism

Exercism solutions.
Log | Files | Refs

commit 004533a2cbcb2a5cd216a83334dc8b583a0c9aab
parent 2560772f48154bf035fbf381d6a9b7554dd2799c
Author: dwrz <dwrz@dwrz.net>
Date:   Sun, 24 Feb 2019 14:59:00 +0000

Reformat and document c/isogram

Diffstat:
Mc/isogram/src/isogram.c | 19++++++++-----------
1 file changed, 8 insertions(+), 11 deletions(-)

diff --git a/c/isogram/src/isogram.c b/c/isogram/src/isogram.c @@ -3,14 +3,12 @@ int length(const char string[]) { int i = 0; - while (string[i] != '\0') { - i++; - } - return i+1; // Account for terminating null character. + while (string[i] != '\0') { i++; } + return i+1; // Account for terminating null char. } char lowercase(char c) { - // Lowercase only ASCII capital characters. + // Lowercase only ASCII uppercase chars. if (c >= 65 && c <= 90) { return c + 32; } @@ -18,11 +16,11 @@ char lowercase(char c) { } bool is_symbol_char(char c) { - // Ignore symbols that precede alpha chars. + // Catch chars that precede or follow alpha chars. if (c < 65 || c > 122) { return true; } - // Ignore symbols intervening the upper and lowercase chars. + // Catch chars intervening the upper and lowercase alpha chars. if (c > 90 && c < 97) { return true; } @@ -32,14 +30,13 @@ bool is_symbol_char(char c) { bool is_isogram(const char phrase[]) { if (phrase == NULL) { return false; } if (length(phrase) == 0) { return true; } - // There are 26 lowercased ASCII alpha chars. + // There are 26 lowercased ASCII alpha chars (97-122). // We can use 26 indexes to keep track of each one. char char_map[26] = { 0 }; for (int i = 0; i < length(phrase); i++) { if (is_symbol_char(phrase[i])) { continue; } // Ignore non-alpha chars. - if (char_map[lowercase(phrase[i]) - 97] != 0) { - return false; - } + if (char_map[lowercase(phrase[i]) - 97] != 0) { return false; } + // Keep track of chars by incrementing the index value. char_map[lowercase(phrase[i]) - 97]++; } return true;