ligações Tópico: soletrar a palavra
Significado das perguntas: dar-lhe uma palavra "Glossário" (matriz de strings) e um caracteres (string) "alfabeto".
Se você pode soletrar palavras em uma "palavra" (string) com os caracteres na "letra" (personagem), então nós pensamos que você já domina a palavra.
Nota: Cada vez que a ortografia, carboniza cada letra só pode ser usado uma vez.
Retornar palavras do vocabulário em todas as palavras que você domina a soma dos comprimentos.
Solução: a violência. de hash semelhante? O número de caracteres com uma série de estatísticas, e depois copiar este array, cada vez que as palavras transversais na palavra, não aparecem na mesma marca. Você pode atravessar com sucesso no registro sobre o comprimento da palavra.
código:
Uma classe Solução { 2 pública : 3 int pf [ 26 ] = { 0 }; 4 5 int countCharacters (vetor < strings > & palavras, cordas caracteres) { 6 int len = chars.size (); 7 para ( int i = 0 ; i <len; i ++ ) { 8 mp [caracteres [i] - ' um ' ] ++ ; 9 } // 统计 10 11 intans = 0 ; 12 int res [ 26 ]; // 复制表 13 para ( int i = 0 ; i <words.size (); i ++ ) { 14 cordas palavra = palavras [i]; 15 memcpy (res, pf, sizeof (pf)); 16 int bandeira = 1 ; 17 para ( int j = 0 ; j <word.size (); j ++ ) { 18 se (res [palavra [j] - ' um ' ] == 0 ) { // Se não houver nenhuma carta . 19 Em Flag = 0 ; 20 é RUPTURA ; 21 é } 22 é else RES [Palavra [J] - ' A ' ] - ; 23 é } 24 SE (bandeira Na) + ANS = word.size (); 25 } 26 é 27 de retorno ANS; 28 } 29 };