Advertisement
Guest User

Untitled

a guest
Jan 16th, 2019
53
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.65 KB | None | 0 0
  1. type
  2. SArray = array of String;
  3. SCode = array of array of String;
  4.  
  5. function CompareTT(Str1, Str2: ShortString): Boolean;
  6. var
  7. I: Byte;
  8. begin
  9. if (Length(Str1) = Length(Str2)) then
  10. begin
  11. for I := 1 to Length(Str1) do
  12. begin
  13. if (Str1[I] <> Str2[I]) then
  14. begin
  15. Result := False;
  16. break;
  17. end;
  18. Result := True;
  19. end;
  20. end
  21. else
  22. Result := False;
  23. end;
  24.  
  25. function GetCode(Inp :SArray): SCode;
  26. var
  27. I, J: Byte;
  28. Code: SCode;
  29. Temp: String;
  30. begin
  31. SetLength(Code, Length(Inp), 2);
  32. for I := 0 to High(Inp) do
  33. begin
  34. temp := Inp[I];
  35. Code[I][1] := Temp[1];
  36. Code[I][0] := '';
  37. for J := 3 to Length(Inp[I]) do
  38. Code[I][0] := Code[I][0] + Temp[J];
  39. end;
  40. Result := Code;
  41. end;
  42.  
  43. function Recoding(Str: ShortString; Code: SCode): String;
  44. var
  45. I: Integer;
  46. Buffer, Temp: ShortString;
  47. J: Byte;
  48. begin
  49. Buffer := '';
  50. Temp := '';
  51. for I := 1 to High(Str) do
  52. begin
  53. Buffer := Buffer + Str[I];
  54. for J := 0 to High(Code) do
  55. begin
  56. if CompareTT(Buffer, Code[J][0]) then
  57. begin
  58. Temp := Temp + Code[J][1];
  59. Buffer := '';
  60. Break;
  61. end;
  62. end;
  63. end;
  64. Result := Temp;
  65. end;
  66.  
  67. procedure main;
  68. var
  69. Size, I: Byte;
  70. Input: SArray;
  71. Code: SCode;
  72. Temp: ShortString;
  73. begin
  74. Readln(Size);
  75. SetLength(Input, Size);
  76. for I := 0 to High(Input) do
  77. Readln(Input[I]);
  78. Code := GetCode(input);
  79. Readln(Temp);
  80. Temp := Recoding(Temp, Code);
  81. Writeln(Temp);
  82. end;
  83.  
  84. begin
  85. main;
  86. end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement