Original von lightsaver
du hast etwa folgende struktur mit dem array wie ich das meinte:
BS Index Anzahl
___________
| a | 0 | 113 |
|---|---|-------|
| b | 1 | 213 |
|---|---|-------|
| c | 2 | 131 |
|---|---|-------|
| d | 3 | 92 |
|---|---|-------|
| e | 4 | 113 |
|---|---|-------|
.
.
.
und in ascii:
.
.
.
______
| a | 97 |
|---|-----|
| b | 98 |
|---|-----|
| c | 99 |
|---|-----|
.
.
.
wenn du nun einfach mit ord(a) zum beispiel den wert von a holst bekommst du 97 (in c# mit (int) 'a') so, da nun die buchstaben halt die indizes 97 - 123 hätten, verschiebt man den index einfach, daher halt sowas in der art:
index = ((int) 'a') - 97;
array[index]++;
das 'a' ist dann natürlich der buchstabe an der aktuellen stelle. und so zählst du halt einfach nur die passende stelle im array hoch.
wenn du nun sagen wir mal alle vorkommen von 'c' in deinem text wissen willst guckst du einfach nur, was in array[2] steht.
das ist halt ne ganz simple aber vollkommen ausreichende und auch schnelle datenstruktur für dieses spezielle problem
hast es jetzt verstanden?