
Вопрос задан 02.10.2023 в 13:54.
Предмет Информатика.
Спрашивает Denver Lesha.
РЕШИТЬ В ПАСКАЛЬ Дана строка, состоящая из слов (разбитых пробелами) и строка символов.
Необходимо выяснить, можно ли из символов строки 2 получить слова из строки 1. Если можно, то вывести эти слова, иначе вывести NO. (буквы из набора можно использовать несколько раз) Входные данные Строка содержащая слова через пробел и строка с набором букв Выходные данные Слова, которые можно получить из символов второй строки или слово NO For example: Input Result hello i love you ieohuyvl hello i love you

Ответы на вопрос

Отвечает Томилина Валерия.
Ответ:
var s,s1,s2:string;
p,k:integer;
begin
readln(s);
s1:=s+' ';
while pos(' ',s1)>0 do delete(s1,pos(' ',s1),1);
while s1<>'' do
begin
p:=pos(' ',s1);
s2:=copy(s1,1,p-1);
delete(s1,1,p);
k:=1;
while pos(s2,s1)>0 do
begin
k:=k+1;
delete(s1,pos(s2,s1),p);
end;
if k=1 then writeln(s2);
end;
end.



Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.
Вот программа на языке Pascal, которая решает данную задачу:
pascalprogram CheckWords; var inputStr1, inputStr2: string; charCount1, charCount2: array['a'..'z'] of Integer; i, j: Integer; canBuildWords: Boolean; procedure InitializeCharCount(var charCount: array['a'..'z'] of Integer); var c: Char; begin for c := 'a' to 'z' do charCount[c] := 0; end; begin canBuildWords := True; InitializeCharCount(charCount1); InitializeCharCount(charCount2); // Ввод строк readln(inputStr1); readln(inputStr2); // Заполнение массивов charCount1 и charCount2 for i := 1 to Length(inputStr1) do if inputStr1[i] <> ' ' then Inc(charCount1[LowerCase(inputStr1[i])]); for i := 1 to Length(inputStr2) do Inc(charCount2[LowerCase(inputStr2[i])]); // Проверка, можно ли построить слова из символов второй строки for i := 1 to Length(inputStr1) do begin if inputStr1[i] <> ' ' then begin if charCount2[LowerCase(inputStr1[i])] > 0 then Dec(charCount2[LowerCase(inputStr1[i])]) else begin canBuildWords := False; break; end; end; end; // Вывод результата if canBuildWords then writeln(inputStr1) else writeln('NO'); end.
Программа сначала считывает две строки: строку с словами и строку с набором символов. Затем она создает два массива charCount1
и charCount2
, чтобы подсчитать количество каждой буквы в этих строках. После этого она проверяет, можно ли построить слова из символов второй строки, используя символы из первой строки, и выводит результат.


Похожие вопросы
Топ вопросов за вчера в категории Информатика

Информатика 558

Информатика 33

Информатика 74

Информатика 12

Информатика 10

Информатика 33

Информатика 27
Последние заданные вопросы в категории Информатика
Предметы
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili