Palindrom

0

Jak rozłożyć słowo na najmniejszą liczbę palindromów? (Potrzebny algorytm, pascal)

0

byłoby dobrze ale ja szukam kodu z pascala a nie z c

0

Palindrom, to słowo/zdanie, które czytane od lewej do prawej i od prawej do lewej brzmi tak samo, np: kobyła ma mały bok (po usunięciu spacji).
I nie bardzo wiem co to znaczy rozłożyć słowo na najmniejszą liczbę palindromów ?
Tak się składa, że akurat piszę program "Pomocnik Krzyżówkowicza" i mam gotową funkcję do sprawdzania, czy dane słowo jest palindromem:

s - słowo do sprawdzenia
CaseSensitive - rozróżnianie wielkości znaków lub nie

function IsPalindrom(s: string; CaseSensitive: Boolean = False): Boolean;
var
  Len, i: integer;
begin
  Result := True;
  
  if not CaseSensitive then s := AnsiUpperCase(s);
  if Trim(s) = '' then
  begin
    Result := False;
    Exit;
  end;

  Len := Length(s);

  for i := 1 to Len do
  begin
    if s[i] <> s[Len - i + 1] then
    begin
      Result := False;
      Break;
    end;
  end;
end;

Ale z "rozkładaniem słów na palindromy" radź sobie sam.

0

np.

palindrom: "bbaabbaabbbaaaaaaaaaaaabbbaa"
rozłoży na: "bbaabb" i "aabbbaaaaaaaaaaaabbbaa"

a jak jest niemożliwy rozkład to wpisuje np. "NIE"

np.
"abcde"

Dzieki już sobie poradzę.

0

Takie zadanko było na Olimpiadzie informatycznej (chyba 1994/95), mam rację ??

1 użytkowników online, w tym zalogowanych: 0, gości: 1