
![]() |
Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
|
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[216.73.217.4] |
![]() |
|
![]() |
|||
|
Добрый день! У меня есть вот такая задачка ![]() Есть объект CString : "aabcabac" Нужно посчитать сколько комбинаций из двух символов встречается в этой строке и занести это в динамически создаваемую двумерную матрицу. То есть для приведенного выше примера нужно сделать так:
То есть комбинация "аа" встречается 1 раз "ab" - 2 "ac" - 1 "ba" - 1 "bb" - 0 "bc" - 1 и так далее Если кто поможет буду очень балгодарен |
Сообщ.
#2
,
|
|
|
в общемм случае.
Cstring text="asdflkajsdflk"; int** matrica=new int*[256]; for (int i=0;i<256;i++) { matrica[i]=new int[256]; memset(matrica[i],0,256*sizeof(int)); } for(i=0;i<text.GetLength()-1;i++) { matrica[text[i]][text[i+1]]++; } все, теперь можно использовать эту матрицу. только в ней учтены не только символы латинского алфавита, а все абсолютно символы%) |
Сообщ.
#3
,
|
|
|
ну не фига себе матрица
![]() думаю надо спец. функцию разработать, чтоб размер матрицы был пропорционален уникальным символам строки. |
Сообщ.
#4
,
|
|||
|
А как это сделать? |
Сообщ.
#5
,
|
|
|
выкидываешь все повторяющиеся буквы, получаешь уникальную строку, не теряй ее (в памяти машины) пусть ее длина получилась LEN.
Создаешь массив LENxLEN, ячейки по нулям. пробегаешь по строке, как у Demo_S, но инкрементируешь немного посложнее (для машины). ( пр. matrix[ i ][ j ]++ )В индекс i загоняешь индекс текущей буквы из уникальной строки, в индекс j загоняешь индекс следующей буквы из уникальной строки. Кажись все. ![]() |