- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
public static int index(string word, char comp)
{
int k = -1;
for (int i = 0; i < word.Length; i++)
if (word[i] == comp)
{
k = i;
break;
}
return k;
}
public static char[] strtocharr(string str)
{
char[] tmp = new char[str.Length];
for (int i = 0; i < tmp.Length; i++)
tmp[i] = str[i];
return tmp;
}
public static string charrtostr(char[] charr)
{
string tmp = null;
for (int i = 0; i < charr.Length; i++)
tmp = String.Format("{0}{1}", tmp, charr[i]);
return tmp;
}
public static char maskfromword(string word)
{
return word[word.Length - 1];
}
public static string maskfromword(string word, int n)
{
string mask = null;
for (int i = 0; i < n; i++)
mask = String.Format("{0}{1}", mask, word[word.Length - 1]);
return mask;
}
public static char Counter(char crnt, string word)
{
if (crnt != maskfromword(word))
crnt = word[index(word, crnt) + 1];
else
crnt = word[0];
return crnt;
}
public static string Counter(string prev, string word, int k)
{
char[] tmp = strtocharr(prev);
if (k >= prev.Length - 1)
k = prev.Length - 1;
else
for (int i = k + 1; i < prev.Length; i++)
tmp[i] = word[0];
if (tmp[k] == maskfromword(word))
return MultiCounter(prev, word, k - 1);
else
tmp[k] = Counter(tmp[k], word);
return charrtostr(tmp);
}
Список методов, позволяющие сделать счетчик по словарю (полезно для генераторов словарей) на любое количество символов.