String: determina se duas strings são palavras flexionadas

 

Descrição do problema:

Dadas duas cadeias, se os tipos de caracteres que aparecem nas duas cadeias forem iguais e o número de ocorrências de cada caractere for o mesmo, as duas cadeias serão flexionadas.

Supondo que os códigos de caracteres exibidos estejam entre 0 e 255 (intervalo fechado)

 

Implementação do algoritmo:

public boolean isDeformation (String str1, String str2) { 

if (str1 == null || str2 == null || str1.length ()! = str2.length ()) {
return false;
}

char [] chars1 = str1. toCharArray ();
char [] chars2 = str2.toCharArray ();
int [] map = new int [256];

for (int i = 0; i <chars1.length; i ++) {
map [chars1 [i]] + +;
}

for (int i = 0; i <chars2.length; i ++) {
if (map [chars2 [i]] - == 0) {// Aqui está o julgamento antes de executar a operação de decremento, quando "== "Quando estabelecido, significa que os elementos atuais em chars2 são mais
falsos que chars1 ;
}
}
retornam true;
}

 

Análise de algoritmo:

1. Primeiro, compare o julgamento não vazio e o comprimento da corda;

2. Converta as duas seqüências em matrizes de caracteres, respectivamente;

3. Adicione uma matriz estatística para contar os valores de cada caractere na primeira matriz de caracteres;

4. Atravesse a segunda matriz e compare os valores dos caracteres na segunda matriz com os valores estatísticos da primeira matriz.

 

Acho que você gosta

Origin www.cnblogs.com/heibingtai/p/12705799.html
Recomendado
Clasificación