Переписать код с Pascal (работа со строками) - C#
Формулировка задачи:
Function MaxBorder(S:String):Word; Var i, j, br, n:Word; Begin n:=Length(S);{Вычисляем длину строки W.} br:=0; For i:=1 To n-1 Do Begin {Цикл по длине грани.} j:=n-i+1; While (j<=t) And (S[i+j-n]=S[j]) Do j:=j+1; {Префикс и суффикс длины i совпадают?} If j=n+1 Then br:=i; End; MaxBorder:=br; End; Procedure MaxBorderArray(S:String); {Массив br глобальный.} Var i,n,t:Word; Begin n:=Length(S); br[1]:=0; For i:=2 To n Do br[i]:=MaxBorder(Copy(S,1,i)); {«Вырезаем» из S подстроку длины i, начиная с первого символа.} End;
static void MaxBorderArray(string mba) { masbr[0] = 0; for (int i = 2; i < mba.Length; i++) masbr[i] = MaxBorder(mba.Substring(0,i)); }
Решение задачи: «Переписать код с Pascal (работа со строками)»
textual
Листинг программы
static int MaxBorder(string S) { int br = 0, j, t, n = S.Length; t = n - 1; for (int i = 0; i < n - 1; i++) { j = t; while ((j < n) && (S[i + j - (n - 1)] == S[j])) j++; if (j == n) br = i + 1; t--; } return br; } static void MaxBorderArray(string S) { masbr[0] = 0; for (int i = 1; i < S.Length; i++) masbr[i] = MaxBorder(S.Substring(0,i+1)); }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д