Урок 17 Задача 8
Primary tabs
Проверить можно ли строки из m перестановкой символов получить строку n.
var m, n: string; i: integer; q: boolean; { функция принимает символ и две строки, считает, сколько данных символов в одной строке и сколько во второй, возвращает значение булевой переменной в зависимости, одинаковое или разное количество символов в строках } function prov(x: char; m, n: string): boolean; var i, a, b: integer; begin a:= 0; b:= 0; q:= false; for i:=1 to length(m) do begin if x = m[i] then a:= a + 1; if x = n[i] then b:= b + 1; end; if a = b then q:= true; result:= q; end; begin /////////// начало тела основной программы write ('Введите строку m: '); readln(m); // считываем первую строку write ('Введите строку n: '); readln(n); // считываем вторую строку if length(m) = length(n) then // если общее количество символов в строках равно for i:=1 to length(m) do // обходим любую из двух строк begin q:= prov (m[i], m, n); // передаем в ф-цию текущий символ и обе строки if q = false then // если количество данного символа в строках разное break; // выходим из цикла end; if (not (length(m) = length(n))) or (q = false) then // если количество символов в строках разное или ф-ция вернула ложный рез-тат write ('Нельзя') else write ('Можно'); readln(); end.
Вывод в консоли:
Введите строку m: sdfg Введите строку n: sdff Нельзя
Введите строку m: sdsdg Введите строку n: gd Нельзя
Введите строку m: gffkl Введите строку n: flkgf Можно
- Log in to post comments
- 331 reads