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

Комбинаторика. Вывести все слова, которые можно составить из данных букв - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Как исправить константу http://www.cyberforum.ru/cpp-beginners/thread1497281.html
int 0=n%100; как сделать что б програма полностью заработала?????????? #include<iostream> using namespace std; int main() { *cout <<" vvedite kolichestvo pirogkov: "; int n;
C++ Рост количества глобальных переменных при работе с временем Всем привет! Пишу GUI там мне для почти каждого спрайта нужен свой временной интервал срабатывания сам интервал реализую простейшим способом (другого более точного не знаю) "global" time_acum +=dt // (время 1ого кадра) if(time_acum>1) // раз в секунду { чото делаем... time_acum=0; } http://www.cyberforum.ru/cpp-beginners/thread1497271.html
C++ Invalid pointer operation
Помогите, пожалуйста, исправить ошибку. #include <vcl.h> #pragma hdrstop #include "conio.h" #include "stdio.h" #include "stdlib.h" #include "Unit1.h" #include "Unit2.h"
Не работает подключение iostream.h C++
VS 2010 ultimate При написании любой программы,не пойму почему,не работает директория <iostream.h> fatal error C1083: Не удается открыть файл включение: iostream.h: No such file or directory Если же использую в такой интерпретации: #include <iostream> using namespace std; int Add (int x, int у) { cout << "In Add(), received " << x << " and " << у << "\n";
C++ В чем разница файла и папки? http://www.cyberforum.ru/cpp-beginners/thread1497264.html
Приветствую. В чем разница между файлом и папкой с точки зрения хранения в памяти. Можно ли превратить одно в другое? Можно ли разместить на диске несколько файлов ссылающихся на одну область памяти (с тем же самым содержимым); а папок? cmd /c echo F | xcopy Скопировал мне папку как файл, размер такой же как у исходной папки. Чем является такой файл и что содержит? Можно ли его...
C++ Вывести все вершины двоичного дерева Двоичное дерево задано в виде: m,g],s,y]] Как с помощью стека вывести это на экран? Набросайте, кому не трудно алгоритм) просто словами) подробнее

Показать сообщение отдельно
S_el
2092 / 1599 / 306
Регистрация: 15.12.2013
Сообщений: 6,420
12.07.2015, 01:47     Комбинаторика. Вывести все слова, которые можно составить из данных букв
Это я к чему спросил,если убрать пробелы между буквами,тогда можно сделать так:
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
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
65
66
67
# include <iostream>
# include <fstream>
# include <unordered_map>
# include <algorithm>
# include <string>
 
bool can_create(const std::string &key,std::string string);
int main()
    {
    std::string line;
    std::unordered_map<size_t,std::unordered_map<std::string,size_t>> Dict;
    std::ifstream myfile("_AllWords.txt");
    std::ofstream out("QW2.txt");
    if(myfile.is_open())
        {
        while (std::getline(myfile,line))
            {
            std::sort(line.begin(),line.end());
            Dict[line.size()][line]++;
            }
        myfile.close();
        }
    else 
        std::cout << "Couldn't open file!" << std::endl;
    myfile.open("i1.txt");
 
    if(myfile)
        {
        while (true)
            {
            size_t N,M;
            std::string test;
            myfile>>N;
            myfile>>test;
            if(!myfile) break;
            M = test.size();
            size_t total=0;
            for(const auto &el:Dict[N])
                {
                if(can_create(el.first,test))
                    total+=el.second;
                }
            out<<total<<std::endl;
            }
        myfile.close();
        }
    else 
        std::cout << "Couldn't open file!" << std::endl;
 
    out.close();
    return 0;
    }
 
bool can_create(const std::string &key,std::string string)
    {
    size_t count=0;
    for(const auto &el : key)
        {
        size_t pos = string.find(el);
        if(pos!=std::string::npos)
            {
            string.erase(pos,1);
            count++;
            }
        }
    return count==key.size();
    }
Добавлено через 1 минуту
Цитата Сообщение от Leonman Посмотреть сообщение
нет, входные данные всегда подоются в таком формат. а Зачем енять формат?
тогда измените приведенный выше код,под нужный вам формат(наращивайте std::string побуквенно или считывайте построчно и проводите разбор строки). Лично мне проще модифицировать файл.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru