{$WRITEABLECONST ON} const
WithAccents: String = 'àáâãäèéêëìíîïòóôõöùúûüÀÁÂÃÄÈÉÊËÌÍÎÒÓÔÕÖÙÚÛÜçÇñÑ'; WithNoAccents: String = 'aaaaaeeeeiiiiooooouuuuAAAAAEEEEIIIOOOOOUUUUcCnN'; {$WRITEABLECONST OFF} function ReplaceAccents(const s: string): string; var i: integer; begin Result := StringReplace(s, #32, EmptyStr, [rfReplaceAll]); for i := 1 to Length(LowerAccents) do Result := StringReplace(Result, WithAccents[i], WithNoAccents[i], [rfReplaceAll]); end; function IsPalindrome(const s: string): boolean; var lIdx: integer; lParse: string; begin Result := true; lParse := AnsiUpperCase(ReplaceAccents(lParse)); for iIdx := 1 to Length(lParse) div 2 do if not (lParse[iIdx] = lParse[Length(lParse) - (iIdx - 1)]) then begin Result := False; Break; end; end; Em tempo: um palíndromo é um número ou valor literal que ao ser lido em sentido contrário (direita para esquerda) tem o mesmo valor se for lido no sentido normal (esquerda para direita). Rubem Nascimento da Rocha Analista/Desenvolvedor Pleno Digital Training - Seção de CA * E-Mail: rubem.ro...@dtmanaus.com.br þ Site: http://www.dtmanaus.com.br <http://www.dtmanaus.com.br/> [As partes desta mensagem que não continham texto foram removidas]