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

можно ли вставить между буквами первой строки буквы второй - C++

Восстановить пароль Регистрация
 
Alisia
 Аватар для Alisia
0 / 0 / 0
Регистрация: 05.11.2011
Сообщений: 23
19.11.2011, 01:29     можно ли вставить между буквами первой строки буквы второй #1
Вот задачка:
аны две строки - A и B. Спрашивается, можно ли вставить между буквами первой строки буквы второй, сохранив их относительный порядок, таким образом, чтобы получилась строка C. При этом необходимо использовать все буквы строк A и B.

Входные данные
В первой строке находится натуральное число T (1 <= T <= 20) - количество тестов во входном файле. Далее для каждого теста даны три непустые строки (A, B и C), состоящие из больших и маленьких латинских букв. Длины строк не превосходят 200 символов.

Выходные данные
Для каждого теста выведите на отдельной строке Yes, если возможно заданным образом получить строку C и No в противном случае.

Пример

Ввод
3
BACA
ABA
ABACABA
BACA
ABA
ABACABADABACABA
BACA
ABA
ABA

Вывод
Yes
No
No

вот мой код:
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
#include <iostream>
#include <string>
using namespace std;
 
const int MAXN = 200;
 
int arr[MAXN][MAXN];
string a;
string b;
string c;
 
int calc (int i, int j)
{
    if (arr[i][j] != -1)
        return arr[i][j];
    if (i == 0 && j == 0)
        arr[i][j] = 1;  
    else
    {
        arr[i][j] = 0;
        if (i > 0 && a[i-1] == c[i + j - 1] && calc(i - 1, j) == 1)
            arr[i][j] = 1;
        if (j > 0 && b[j - 1] == c[i + 1 -1] && calc(i, j - 1) == 1)
            arr[i][j] = 1;
    }
 
    return arr[i][j];
 
}
 
int main () 
{   
    int n;
    cin >> n;
    for (int i = 0; i < n; i++)
        getline (cin, a), getline (cin, b), getline (cin, c);
 
 
    memset (arr, -1, sizeof(arr));
 
    if (calc (n, n))
        cout << "YES" << endl;
    else
        cout << "NO" << endl;
 
    return 0;
}
Подскажите, где фигню я делаю? и как исправить. сама не допираю ((
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.11.2011, 01:29     можно ли вставить между буквами первой строки буквы второй
Посмотрите здесь:

Добавить в конец первой строки, последние n2-n1 слов второй строки C++
C++ Как из первой строки удалить те буквы, которые есть во второй строке?
C++ Найти произведение между соответствующими числами первой и второй строки и вывести результат на экран
Даны две строки. Получить строку, в которой чередуются слова первой и второй строки C++
Ввести две символьных строки. Выполнить поиск второй строки в первой и вывести номер позиции, с которой вторая строка содержится в первой. C++
После первой буквы каждого слова вставить символ “-” C++
C++ Найти сумму между соответствующими числами первой и второй строки
C++ Разместить текст первой строки по центру второй строки

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

Текущее время: 21:42. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru