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

Задача о строке и шаблоне - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ ключ к MS VS 2010 Express http://www.cyberforum.ru/cpp-beginners/thread697040.html
сабж. Где посмотреть мой ключ или получить новый без доступа к интернету?
C++ Как задать конец предложения - точка с последующим символом новой строки задача. Разработать функцию, которая осуществляет замену в заданном предложении всех малых латинских букв на соответствующие заглавные буквы. Используя разработанную функцию, переписать заглавными буквами в новый файл пять первых предложений заданного текстового файла (конец предложения - точка с последующим пробелом, табуляцией или символом новой строки). подскажите как реализовать, а то если в... http://www.cyberforum.ru/cpp-beginners/thread697033.html
Упорядочить по убыванию элементы каждой строки матрицы C++
1. Составьте программу, упорядочивающую по убыванию элементы каждой строки матрицы размером m*n.
C++ Некоторые задачи в С++
1)Написать функцию, которая по заданным действительными a, h и целым m печатает значение функции arctg (sin x) в точках a, a + h, ..., a + mh. 2)Написать функцию, которая по заданному n определяет число, образуется обращением десятичной записи n. Например, обратно- нием 123 является 321, 340 - 43 (незначащие нули отбрасываются). С++
C++ Забить двумерный массив всеми возможными битовыми комбинациями http://www.cyberforum.ru/cpp-beginners/thread697015.html
А вы не подскажете как в цикле забить двумерный массив всеми возможными комбинациями битов например при n = 3 будет двумерный массив 0 0 0 0 0 1 0 1 0 0 1 1 1 0 0
C++ Табулирование С++ 1)Табулирование функции страницами. Написать функцию, которая на отрезке табулирует с шагом h функцию sin x, но после вывода каждые m строк выводится запрос, продолжать печать. Работа завершается после ответа «0». подробнее

Показать сообщение отдельно
neske
1419 / 786 / 55
Регистрация: 26.03.2010
Сообщений: 2,694
14.11.2012, 21:53  [ТС]     Задача о строке и шаблоне
все, нашел я симпатичное решение с помощью рекурсии, на этом же форуме )

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
#include <iostream>
#include <vector>
#include <string>
 
std::string s, p;
 
bool match(int spos, int ppos) {
    if (spos == s.size() || ppos == p.size())
        return spos == s.size() && ppos == p.size();
    else if (p[ppos] == '?')
        return match(spos + 1,ppos + 1);
    else if (p[ppos] == '*') {
        for (int i = spos; i <= s.size(); ++i)
            if (match(i, ppos + 1))
                return true;
    } else
        return s[spos] == p[ppos] && match(spos + 1,ppos + 1);
    return false;
}
 
int main() {
    std::cin >> s >> p;
    std::cout << (match(0, 0) ? "YES" : "NO");
}
 
Текущее время: 11:48. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru