PYTHON
Dada uma string s com apenas letras minúsculas, imprima o comprimento do palíndromo mais longo que pode ser construído com essas letras.
Entrada:
A única linha de entrada contém uma string 1≤|s|≤105.
Saída:
Imprima o comprimento do palíndromo mais longo que pode ser construído com essas letras.
Notas:
No primeiro exemplo de teste, a partir da string de entrada "abccccdd", o palíndromo mais longo que pode ser obtido possui comprimento 7. As possibilidades são "dccaccd", "dccbccd", "ccdadcc", "cdcacdc", "ccdbdcc", "cdcbcdc".
teste no anexo
Anexos:
Soluções para a tarefa
Respondido por
1
Resposta:
s = "abccccdd"
#Conta quantas vezes a letra aparece na sequência
def conta(letra):
global s
contador = 0
for e in s:
if letra == e:
contador +=1
return contador
conta_pares = 0
#grava as letras ja conferidas o número de repetição
ja_verificada = ""
#contando os pares
for i in s:
if i not in ja_verificada:
conta_pares += int(conta(i)/2)
ja_verificada +=i
#Se a quantidade de pares for menor que o tamanho d string
#então há pelo menos 1 letra sem par e que portanto pode ficar
#no meio do polídromo
if 2*conta_pares < len(s):
conta_pares = 2*conta_pares+1
else:
conta_pares = 2*conta_pares
print("comprimento máximo: ",conta_pares)
lucas27484:
Rodou não
Perguntas interessantes
Matemática,
5 meses atrás
História,
5 meses atrás
Física,
5 meses atrás
Português,
6 meses atrás
Matemática,
6 meses atrás
Português,
11 meses atrás
Filosofia,
11 meses atrás
Filosofia,
11 meses atrás