0 / 0 / 0
Регистрация: 05.11.2011
Сообщений: 23
1

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

19.11.2011, 01:29. Показов 935. Ответов 0
Метки нет (Все метки)

Вот задачка:
аны две строки - 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;
}
Подскажите, где фигню я делаю? и как исправить. сама не допираю ((
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
19.11.2011, 01:29
Ответы с готовыми решениями:

Как вывести последние 3 буквы из первой строки и первые 3 буквы из второй строки 10 раз
Помогите пожалуйста, составить программу с действиями 1. Вводим любое слово в первую строку 2....

Удалить в словах все буквы, находящиеся между первой и последней буквами ‘о’
Удалить в словах все буквы, находящиеся между первой и последней буквами ‘о’, если такие имеются.

Переставить в обратном порядке буквы, расположенные между второй и десятой буквами
Дано слово из 12 букв. Переставить в обратном порядке буквы, расположенные между второй и десятой...

Дано слово из 12 букв. Переставить в обратном порядке буквы, расположенные между второй и десятой буквами (т.е. с третьей по девятую)
Дано слово из 12 букв. Переставить в обратном порядке буквы, расположенные между второй и десятой...

0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
19.11.2011, 01:29
Помогаю со студенческими работами здесь

Обмен между строками самого длинного слова первой строки на самое короткое слово второй строки
помогите чем сможете. Беда совсем. оформить в виде модуля подпрограммы, получающие в качестве...

Как из первой строки удалить те буквы, которые есть во второй строке?
Как из первой строки удалить те буквы, которые есть во второй строке???

Сделать копию части строки между первой '*' и второй
ввести строку произвольной длины(&lt;80 символов),содержащую два символа'*'.Сделать копию части строки...

Выделить из строки предложение между первой и второй точками
Задана строка символов, состоящая из нескольких предложений. Выделить предложение между первой и...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru