Leetcode el palíndromo más largo

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;
    }
};
Publicado 85 artículos originales · ganado elogios 0 · Vistas 387

Supongo que te gusta

Origin blog.csdn.net/weixin_38312163/article/details/104973930
Recomendado
Clasificación