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

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

Войти
Регистрация
Восстановить пароль
 
user_p01
19 / 19 / 2
Регистрация: 03.11.2011
Сообщений: 80
#1

Строки: Выбрать из слов те, которые могут быть получены из образца по правилу - C++

08.09.2012, 11:51. Просмотров 422. Ответов 1
Метки нет (Все метки)

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

Подсчитать в заданной строке число слов, которые могут быть разделены пробелом, табуляцией, переводом строки - C++
Объясните пожалуйста,в чем ошибка? #include<stdio.h> #include<string.h> int *words(char *s) { int len=strlen(s),i,k=1,l=0; ...

Среди элементов массива найти индексы всех таких, которые могут быть получены cуммированием двух элементов - C++
Вот задачка помогите, ЛЮДИ Среди элементов массива найти индексы всех таких, которые могут быть получены cуммированием двух элементов...

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

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

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

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

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
outoftime
║XLR8║
509 / 431 / 33
Регистрация: 25.07.2009
Сообщений: 2,295
08.09.2012, 15:02 #2
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
31
32
#include <string>
#include <map>
#include <vector>
 
std::map<char, int> get_pattern(std::string &str) {
    std::map<char, int> result();
    for (int i = 0; i < str.size(); ++i) {
         result[str[i]]++;
    }
    return result;
}
 
int check(std::string &str, std::map<char, int> &pattern) {
    std::map<char, int> transform = get_pattern(str);
    if (transform.size() > pattern.size()) return 0;
    for (std::map<char, int>::iterator it = transform.begin(), find; 
        it != transform.end(); ++it) 
    {
        if ( (find = pattern.find(it->first)) == pattern.end() 
            || it->second > find->second ) return 0;
    }
    return 1;
}
 
int main() {
    std::string initalStr; // начальное слово
    std::vector<std::string> strs; // слова для сравнения
    std::map<char, int> pattern = get_pattern(initalStr);
    for (std::vector<std::string> it = strs.begin(); it != strs.end(); ++it) {
        if (check(*it, pattern)) // запоминаем
    }
}
Год уже не писал перепроверь что к чему.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.09.2012, 15:02
Привет! Вот еще темы с ответами:

Массив функций которые хранятся в одном объекте, но могут быть выполнены по индексу - C++
Допустим есть любая функция, с любыми аргументами, например void func(std::string) {} или void func(int a, int b, int c) {}

Вывести только те слова, которые могут без искажений быть записаны латинскими символами - C++
3.Дан текст на русском языке. Вывести только те слова, которые могут без иска* жений быть записаны латинскими символами. Например, MAMA,...

Дан набор карточек, на каждой из которых написана буква(среди букв могут быть повторяющиеся) и список слов - C++
Доброго времени суток ! Можете помочь в объяснении задачи, не могу понять что от меня хотят Дан набор карточек, на каждой из которых...

Найдите шаблон с минимальным количество вопросительных знаков, из которого могут быть получены обе строки - Turbo Pascal
Шаблоном размера n назовем строку длины n, каждый из символов которой входит в множество {0, 1, ?}. Шаблоны преобразуются в строки из...


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

Или воспользуйтесь поиском по форуму:
Ответ Создать тему
Опции темы

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