Para provar a segurança OFERTA string - correspondência de expressão regular

título Descrição

Implementar compreende uma função para combinar '' e '*' expressão regular. caráter Mode '' Representa qualquer caractere '*' indica que o caractere precedente pode aparecer qualquer número de vezes (incluindo 0 tempo). Neste problema, o jogo é todo um padrão corresponde a todos os caracteres da cadeia. Por exemplo, a string "aaa" modo e "aa" e "ab * ac * um" jogo, mas o "aa.a" e "ab * a" não coincidem.

análise

movimento do ponteiro.

Quando o modo não é o segundo carácter "*" é:
1, se o primeiro carácter e o primeiro caractere no padrão corresponde a seqüência de caracteres e um caráter modos de trás, e as partidas restantes.
2, se o primeiro caractere e o primeiro padrão de caracteres não coincide com a fase retorna diretamente falsa.

E quando o segundo modo é o caractere "*" é:
pode haver três tipos de modo correspondente:
1, 2, após o modo de deslocamento de caráter, correspondente a x * é ignorada;
2, após uma jogada cadeia de caracteres, o padrão Shift 2 caráter, x * corresponde apenas o equivalente a um personagem;
3, mova uma cadeia de caracteres, o mesmo padrão que continua a corresponder ao próximo lugar caráter, porque * corresponde a um número;

código

class Solution {
public:
    bool match(char* str, char* pattern)
    {
        if (*str == '\0' && *pattern == '\0')
            return true;
        // 1.匹配带*正则(包括非贪心情况)
        if (*str == *pattern || (*pattern == '.' && *str != '\0'))
        {
            // 不是正则式
            if (*(pattern + 1) != '*')
                return match(++str, ++pattern);
            // 是正则式
            // 将*字符的匹配一分为二的处理
            return match(str, pattern + 2) || match(str + 1, pattern);
        }
        // 消去无用带*字符
        else if (*(pattern + 1) == '*')
        {
            pattern += 2;
            return match(str, pattern);
        }
        return false;
    }
};

 

Publicado 35 artigos originais · ganhou elogios 6 · vista 6691

Acho que você gosta

Origin blog.csdn.net/qq_35413770/article/details/105131948
Recomendado
Clasificación