Форум: "Потрепаться";
Текущий архив: 2003.01.02;
Скачать: [xml.tar.bz2];
ВнизПомогите с задачкой. Найти похожие ветки
← →
Сергей Макаров (2002-12-12 10:56) [0]приветствую Вас. помогите плз с задачкой. Даны два слова определить, можноно ли из букв первого составить второе.
например:
Входные данные Входные данные
мусоровоз мусоровоз
мороз мурка
Выходные данные Выходные данные
можно нельзя.
спасибо!
← →
greystone (2002-12-12 11:10) [1]Перебираешь буквы второго слова и ищеш их в первом с помощю POS
← →
France (2002-12-12 11:11) [2]Как вариант могу предложить перебирать по буквам второе слово и проверять их на наличие в первом. При этом в словах убирать найденные буквы.
Пример: Машина - Маша.
находим "М".
остается ашина - аша.
далее находим "а".
остается шина - ша. и так далее.
В конечном итоге от второго слова ничего не остается. Это и есть решение.
← →
greystone (2002-12-12 11:12) [3]И учитываешь количество одинаковых букв
← →
Ru (2002-12-12 11:13) [4]Функция подсчета вхождений подстроки в строке:
http://delphibase.endimus.ru/?action=viewfunc&topic=strchange&id=10341
при указанной постановке приведеная функция подойдет.
← →
Anatoly Podgoretsky (2002-12-12 11:16) [5]Не полные условия, не указано насчет одинаковых букв, отсюда разные решения
← →
Ru (2002-12-12 11:18) [6]в догонку:
можно составить все сочетания из букв первого слова, а потом указанной функцией их протестировать. Э:)
← →
Uncle Archi (2002-12-12 11:41) [7]Всё решается довольно просто на Pascal"e:
Var
a:array[char]of Integer;
s:string;
i,j:Integer;
c:CHar;
Begin
Readln(s);
FillChar(a,SizeOf(a),0);
For i:=1 to Length(s) do
Inc(a[s[i]]);
Readln(s);
For i:=1 to Length(s) do
Dec(a[s[i]]);
For c:=#0 to #255 do
If a[c]<0 then
Begin
Writeln("Нельзя");
Halt;
End;
Writeln("можно");
End.
Всё довольно просто для понимания.
Страницы: 1 вся ветка
Форум: "Потрепаться";
Текущий архив: 2003.01.02;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.003 c