título Descripción
Dada una letra mayúscula y minúscula cadena de letras que comprende, configurado para encontrar la más larga de las cartas de secuencia palindrómica.
En el proceso de construcción, por favor notas de casos sensibles. Tales como "AA" no se puede utilizar como una cadena palíndromo.
palíndromo cadena: Cadena simétrica
pensamiento
Hash, en primer lugar, cuente el número de ocurrencias de cada cadena de caracteres, si la cadena es aún palíndromo puede entrar, si es impar, la secuencia palindrómica puede entrar en -1. Si se produce un número impar, el último de llenado una necesidad como un personaje central, parece extraño si no, no hay necesidad S.1
código
class Solution {
public:
int longestPalindrome(string s) {
if(s.size()<0)
return 0;
vector<int> Hash(128);
for(int i = 0; i < s.size(); i++)
{
Hash[s[i]-' ']++;
}
int res = 0;
int max = 0;
bool found = false;
for(int i = 0; i < 128;i++)
{
if(Hash[i]%2 == 0)
{
res = res + Hash[i];
}
else
{
if(Hash[i] > 0)
{
res = res + Hash[i]-1;
found = true;
}
}
}
if(found)
{
return res+1;
}
return res;
}
};