Jak rozłożyć słowo na najmniejszą liczbę palindromów? (Potrzebny algorytm, pascal)
Nie czytałem, ale wygląda dobrze, http://aragorn.pb.bialystok.pl/~radev/informat/zal001/boruszko/palindrom.htm
byłoby dobrze ale ja szukam kodu z pascala a nie z c
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.
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ę.
Takie zadanko było na Olimpiadzie informatycznej (chyba 1994/95), mam rację ??