Возможно ли переставляя и удаляя буквы первого слова добавляя буквы второго получить третье слово? - C (СИ)
Формулировка задачи:
Помогите пожалуйста написать программу,завтра нужно сдавать.Условие:в заданной строке записаны 3 слова.Возможно ли переставляя и удаляя буквы первого слова добавляя буквы второго получить третье слово.
Очень надо,срочно.Заранее спасибо!
Решение задачи: «Возможно ли переставляя и удаляя буквы первого слова добавляя буквы второго получить третье слово?»
textual
Листинг программы
#include <iostream> #include <cstring> using namespace std; int main() { const int SIZE = 128; char word1[SIZE], word2[SIZE], word3[SIZE]; cin >> word1 >> word2 >> word3; int a[26], b[26], c[26]; for (int i = 0; i < 26; i++) a[i] = b[i] = c[i] = 0; for (int i = 0; i < strlen(word1); i++) a[toupper(word1[i]) - 65]++; // 'A' - 65, 'B' - 66 ... for (int i = 0; i < strlen(word2); i++) a[toupper(word2[i]) - 65]++; // 'A' - 65, 'B' - 66 ... for (int i = 0; i < strlen(word3); i++) a[toupper(word3[i]) - 65]++; // 'A' - 65, 'B' - 66 ... bool flag = true; for (int i = 0; i < 26; i++) { if (a[i] + b[i] < c[i]) { flag = false; break; } } if (flag) cout << "YES"; else cout << "NO"; return 0; }
Объяснение кода листинга программы
- В начале определяются три строки-переменные: word1, word2, word3, которые предназначены для ввода первых трех слов.
- Далее определяются три массива-переменные: a, b, c, которые предназначены для подсчета количества букв в каждом слове.
- В первой тройке циклов происходит заполнение массивов a, b, c. В каждой итерации происходит увеличение счетчика для соответствующей буквы в каждом слове.
- Во второй тройке циклов происходит сравнение количества букв в каждом слове. Если сумма букв в word2 и word3 меньше, чем количество букв в word1, то флаг устанавливается в false и выполнение программы прерывается.
- В последней тройке циклов проверяется значение флага. Если он равен true, то выводится
YES
, иначе выводитсяNO
. - В конце программы указывается, что функция main() возвращает 0, что означает успешное завершение программы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д