014
06.05.2007, 22:30 Uhr
0xdeadbeef
Gott (Operator)
|
Wobei...heh, in dieser Form sollte das wohl wegen Lokalisierung (Umlaute etc) eher so heißen:
C++: |
#define CHAR_VALUES (1 << CHAR_BIT)
static __inline__ void count_letters(unsigned buf[CHAR_VALUES], char const *s) { memset(buf, 0, CHAR_VALUES * sizeof(unsigned));
for(; *s; ++s) { if(isalpha(*s) { ++buf[tolower(*s)]; } } }
_Bool anagramm(char const *s1, char const *s2) { unsigned letters1[CHAR_VALUES], letters2[CHAR_VALUES];
count_letters(letters1, s1); count_letters(letters2, s2);
return memcmp(s1, s2, CHAR_VALUES * sizeof(unsigned)) == 0; }
|
Da steckt dann zwar prinzipiell noch Optimierungspotential drin, aber...es dürfte schwer sein, das für alle locales anders handzuhaben. -- Einfachheit ist Voraussetzung für Zuverlässigkeit. -- Edsger Wybe Dijkstra Dieser Post wurde am 06.05.2007 um 22:33 Uhr von 0xdeadbeef editiert. |