Sha256: 9357a4d797844c1cadda13e33da56b272ffa490dbcc837c8a9298afe0cc91a9a

Contents?: true

Size: 533 Bytes

Versions: 136

Compression:

Stored size: 533 Bytes

Contents

#include "isogram.h"
#include <ctype.h>
#include <stddef.h>
#include <stdint.h>

bool is_isogram(const char phrase[])
{
   uint32_t used_letters = 0;

   if (phrase == NULL)
      return false;

   for (int16_t i = 0; phrase[i] != '\0'; ++i) {
      if (isalpha(phrase[i])) {
         uint8_t bit_number = toupper(phrase[i]) - 'A';
         uint32_t bit_mask = 1 << bit_number;

         if ((used_letters & bit_mask) > 0)
            return false;
         else
            used_letters |= bit_mask;
      }
   }

   return true;
}

Version data entries

136 entries across 136 versions & 1 rubygems

Version Path
trackler-2.2.1.139 tracks/c/exercises/isogram/src/example.c
trackler-2.2.1.138 tracks/c/exercises/isogram/src/example.c
trackler-2.2.1.137 tracks/c/exercises/isogram/src/example.c
trackler-2.2.1.136 tracks/c/exercises/isogram/src/example.c
trackler-2.2.1.135 tracks/c/exercises/isogram/src/example.c
trackler-2.2.1.134 tracks/c/exercises/isogram/src/example.c
trackler-2.2.1.133 tracks/c/exercises/isogram/src/example.c
trackler-2.2.1.132 tracks/c/exercises/isogram/src/example.c
trackler-2.2.1.131 tracks/c/exercises/isogram/src/example.c
trackler-2.2.1.130 tracks/c/exercises/isogram/src/example.c
trackler-2.2.1.129 tracks/c/exercises/isogram/src/example.c
trackler-2.2.1.128 tracks/c/exercises/isogram/src/example.c
trackler-2.2.1.127 tracks/c/exercises/isogram/src/example.c
trackler-2.2.1.126 tracks/c/exercises/isogram/src/example.c
trackler-2.2.1.125 tracks/c/exercises/isogram/src/example.c
trackler-2.2.1.124 tracks/c/exercises/isogram/src/example.c
trackler-2.2.1.123 tracks/c/exercises/isogram/src/example.c
trackler-2.2.1.122 tracks/c/exercises/isogram/src/example.c
trackler-2.2.1.121 tracks/c/exercises/isogram/src/example.c
trackler-2.2.1.120 tracks/c/exercises/isogram/src/example.c