05.09.2006, 16:48
общий
это ответ
Здравствуйте, Тимофиев Владимир Михайлович!
Пример на паскале.
Фактически вся задача реализуется в 2 функциях
1. Проходим всю матрицу 11*11 и считаем количество одинаковых символов.
ScanLetter
2. Проходим по заранее возможным словам и проверяем существуют
ли символы для генерации данного слова.
FindWord
С ув.
Приложение:
var i,j : integer; index : integer; letters : array[0..10,0..10] of char; letter_count : array[0..27] of integer; temp_count : array[0..27] of integer; words : array[0..10] of string; wcount : integer;procedure AddWord(word : string);begin words[wcount] := word; wcount := wcount + 1;end;procedure ScanLetter;begin for i:=0 to 27 do letter_count[i] := 0; for i:=0 to 10 do for j:=0 to 10 do begin index := ord(letters[i,j]) - ord(‘a‘); letter_count[index] := letter_count[index] + 1; end;end;procedure TempAss;var i : integer;begin for i:=0 to 27 do temp_count[i] := letter_count[i];end;procedure FindWord;var st : boolean;begin for i:=0 to 10 do begin TempAss; st := true; j := 1; while (st = true) and (j <= Length(words[i])) do begin index := ord(words[i][j]) - ord(‘a‘); if (temp_count[index] < 1) then st := false; temp_count[index] := temp_count[index] - 1; j := j+1; end; if st = true then writeln(words[i]); end;end;begin wcount := 0; for i:=0 to 11 do begin for j:=0 to 10 do begin letters[i,j] := chr(j + ord(‘a‘)); write(letters[i,j] + ‘ ‘); end; writeln; end; letters[4,3] := ‘z‘; AddWord(‘cat‘); AddWord(‘zez‘); AddWord(‘abc‘); AddWord(‘adas‘); AddWord(‘Hello‘); AddWord(‘cats‘); AddWord(‘za‘); AddWord(‘fifa‘); AddWord(‘asd‘); AddWord(‘Hel‘); ScanLetter; FindWord; readln;end.