Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 4.73
zalax
1 / 1 / 0
Регистрация: 14.09.2010
Сообщений: 52
#1

Найти повторяющиеся символы в массиве - C++

02.10.2010, 18:58. Просмотров 1478. Ответов 7
Метки нет (Все метки)

Доброго времени суток! Не могли бы подсказать как решить такую задачу. Дана последовательность символов, надо найти какой символ сколько раз повторяется. Предполагаю, что их лучше всего поместить в массив, а потом уже в нем оперировать. Не могли бы подсказать алгоритм, как лучше решить такую задачу (если можно с простенькими примерами кода).
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.10.2010, 18:58
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Найти повторяющиеся символы в массиве (C++):

Удалить повторяющиеся символы в массиве - C++
Доброго времени суток форумчане! у меня такая задачка: нужно найти и удалить все повторяющиеся элементы в массиве... я выбрал...

Найти уникальные и повторяющиеся символы - C++
пример: ввод символов : abcab слово: abc вывод должен быть такой: 00100 пожалуйста помогите,как это сделать?

String, найти слова, в которых есть повторяющиеся символы - C++
Дан текст не менее, чем из 7 слов, нужно найти слова в которых есть повторяющиеся символы и записать эти слова в отдельную строку. Написал,...

Найти в массиве повторяющиеся значения - C++
Написать программу, которая находит в массиве значения, повторяющиеся два и более раз, и показывает их на экран

Найти повторяющиеся в массиве элементы - C++
Помогите написать программу: Исходными данными являются массив из 10 элементов, заполненный пользователем с клавиатуры.Написать...

В массиве найти все повторяющиеся числа - C++
В массиве нужно найти все числа, которые повторяются и вывести по одному разу и вывести в другой масив. Вся суть задачи в том, что...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
максим)
2 / 2 / 0
Регистрация: 02.10.2010
Сообщений: 36
02.10.2010, 19:01 #2
можешь уточнить ??? символов или цифр ????
0
zalax
1 / 1 / 0
Регистрация: 14.09.2010
Сообщений: 52
02.10.2010, 19:03  [ТС] #3
буквы и цифры. максимальное количество 80
0
easybudda
Модератор
Эксперт CЭксперт С++
9628 / 5576 / 947
Регистрация: 25.07.2009
Сообщений: 10,711
02.10.2010, 19:39 #4
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <stdio.h>
 
#define STR_LEN 81 /* + '\0' */
 
int main(void){
    char symbols[256] = { 0 }, str[STR_LEN], *p;
    int i;
    
    printf("String: ");
    scanf("%80[^\n]", str);
    
    for ( p = str; *p; ++p )
        symbols[*p]++;
    
    for ( i = 0; i < 256; ++i )
        if ( symbols[i] )
            printf("'%c'\t%d\n", i, symbols[i]);
    
    return 0;
}
0
PointsEqual
ниначмуроФ
835 / 519 / 33
Регистрация: 12.10.2009
Сообщений: 1,915
02.10.2010, 19:42 #5
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#include <iostream>
 
void repetit(std::string str){
    for ( int k = 0; k < str.size(); ++k){
        int cnt = 1;
        bool repetition = false;
 
        for (int j = 0; j < k; ++j)
            if ( str[k] == str[j] ){
                repetition = true;
                break;
            }
 
        if (repetition) continue;
 
        for ( int i = k+1; i < str.size(); ++i){
             if ( str[k] == str[i] )
                ++cnt;
        }
 
        std::cout << str[k] << "-->" << cnt <<std::endl;
    }
}
 
int main()
{
    std::string text("1231421728");
    repetit(text);
    return 0;
}
0
PointsEqual
ниначмуроФ
835 / 519 / 33
Регистрация: 12.10.2009
Сообщений: 1,915
02.10.2010, 19:45 #6
приложение
0
Миниатюры
Найти повторяющиеся символы в массиве  
zalax
1 / 1 / 0
Регистрация: 14.09.2010
Сообщений: 52
02.10.2010, 20:02  [ТС] #7
2 PointsEqualб easybudda
Не могли бы прокомментировать ваши программы?
0
PointsEqual
ниначмуроФ
835 / 519 / 33
Регистрация: 12.10.2009
Сообщений: 1,915
02.10.2010, 20:25 #8
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
void repetit(std::string str){
    for ( int k = 0; k < str.size(); ++k){ //начиная от первого символа последовательности
        int cnt = 1; //счетчик изначально == 1, т.к ........
        bool repetition = false; //пусть  повторений k-ого символа не было
 
        for (int j = 0; j < k; ++j)// начиная от первого символа последовательности до текущего элемента k, проверяем, не было ли повторений этого символа
            if ( str[k] == str[j] ){ //если повтор был
                repetition = true; // то делаем флаг
                break; //выходи из цикла и...
            }
 
        if (repetition) continue; //...и если было повторение переходим к следующему символу последовательности (к+1)
 
        //если повторов к-ого символа не было то...
        for ( int i = k+1; i < str.size(); ++i){ //...то проверяем  текущий (к-ый) сивол со следующим
             if ( str[k] == str[i] ) //если символы совпали, то ..
                ++cnt;//..увелучить счетчик повтора k-ого символа
        }
 
        std::cout << str[k] << "-->" << cnt <<std::endl; // вывод
    }
}
Добавлено через 4 минуты
1 2 3 1 4 2 1 7 2 8

допустим мы на ходимся на 3-ем элементе (к==3)

этот кусок отвечает за красную часть
C++
1
2
3
4
5
6
7
        for (int j = 0; j < k; ++j)
            if ( str[k] == str[j] ){
                repetition = true;
                break;
            }
 
        if (repetition) continue;
этот за синюю
C++
1
2
3
4
 for ( int i = k+1; i < str.size(); ++i){
             if ( str[k] == str[i] )
                ++cnt;
        }
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.10.2010, 20:25
Привет! Вот еще темы с ответами:

Найти в массиве все повторяющиеся последовательности - C++
Создать программу, которая вводит c клавиатуры массив целых чисел, находит в нем все повторяющиеся последовательности (1 1, 2 2 2 и т.д.) и...

Массивы: Найти наиболее часто повторяющиеся числа в массиве - C++
Здравствуйте! Подскажите пожалуйста где у меня может быть ошибка. Дело в том, что вначале когда начал писать код, поставил размер массива...

Упорядочить символы в алфавитном порядке, при этом все повторяющиеся символы должны быть удалены и переписать новый текст в файл D - C++
23. Задан текстовый файл С, состоящий из произвольной последовательности буквенных символов. Упорядочить символы в алфавитном порядке, при...

Найти в массиве повторяющиеся элементы и подсчитать, сколько раз они повторяются - C++
ПОМОГИТЕ:) задача такая : Дан массив из N целых чисел. Определить есть ли в массиве повторяющиеся элементы; если таковые имеются, то...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
02.10.2010, 20:25
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru