anagramdetection.js -- javascript campo con strings camp codereview Relacionados El problema

anagramDetection.js


2
vote

problema

Español

Una función que acepta dos parámetros, un padre y una cadena infantil. Determina cuántas veces la cadena infantil, o un anagrama de la cadena infantil, aparece en la cadena principal.

  Time5  
Original en ingles

A function that accepts two parameters, a parent and a child string. Determines how many times the child string - or an anagram of the of the child string - appears in the parent string.

var primeMap = (function () {   var map = {};    var primes = [     2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67,     71, 73, 79, 83, 89, 97, 101, 103, 107, 109, 113, 127, 131, 137, 139, 149,     151, 163, 167, 173, 179, 181, 191, 193, 197, 199, 211, 223, 227, 229, 233,     239, 241   ];    var alphabet = [     'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o',     'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', 'A', 'B', 'C', 'D',     'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S',     'T', 'U', 'V', 'W', 'X', 'Y', 'Z'   ];    // Merge the primes and alphabet together, using the letters as keys.   alphabet.forEach(function (letter, index) {     map[letter] = primes[index];   });    return map; })();  /**  * Hash a string using the prime number map.  *  * @param  {String} str  * @return {Number}  */ var hash = function (str) {   return str.split('').reduce(function (memo, char) {     return memo * primeMap[char];   }, 1); };  /**  * Count the number of times a child or anagram of the child appears in the  * parent string.  *  * @param  {String} parent  * @param  {String} child  * @return {Number}  */ module.exports = function (parent, child) {   var found   = 0;    // Safety first, confirm that the child is actually smaller than the parent.   if (parent.length < child.length) {     return found;   }    var value   = hash(parent.substr(0, child.length));   var anagram = hash(child);    // Iterate over all substring possibilities and check the hash values.   for (var i = child.length; i <= parent.length; i++) {     if (value === anagram) {       found += 1;     }      // Instead of naively hashing every substring, we can just recompute the     // changed characters.     value *= primeMap[parent[i]];     value /= primeMap[parent[i - child.length]];   }    return found; }; 
     
 
 

Lista de respuestas


Relacionados problema

1  Imprima todos los tamaños posibles de subsecuencias de cadena en C  ( Print out all possible sizes of subsequences of string in c ) 
Por ejemplo, dada una cadena "abcdefghijk", quiero que mi función se imprima: a, b, c, d, e, f, g, h, i, j, k. ab, bc, cd, de, ef, fg, gh, hi, ij, jk ab...

8  Conversión de STD :: Chrono :: Time_Point to / from std :: string  ( Converting stdchronotime point to from stdstring ) 
Considere estas funciones que permitan convertir checkOnline.sh4 a / FROM checkOnline.sh5 Con un formato Fecha de fecha ". checkOnline.sh6 con uso:...

18  Invirtiendo una cadena  ( Reversing a string ) 
Tuve esto como una pregunta de entrevista, y el entrevistador señaló esto. Esto es lo que escribí: //C# Syntax here public string Reverse(string s) { c...

6  Las vocales en una cadena están en orden alfabético  ( Vowels in a string are in alphabetical order ) 
Tarea Escriba una implementación que devuelva si un 99887776655544330 tiene vocales (idioma inglés) en orden alfabético (A-Z) o no. Feedback es mi v...

10  Función recursiva que genera las permutaciones de una cadena  ( Recursive function that generates the permutations of a string ) 
Estoy buscando una revisión de mi función recursiva que genere las permutaciones de una cadena. ¿Hay mejores formas de hacer esto? var permutations = []; ...

1  Compruebe si dos cadenas son permutación entre sí  ( Check if two strings are permutation of each other ) 
private String sort(String word) { char[] content = word.toCharArray(); Arrays.sort(content); return new String(content); } private boolea...

3  Implementación más portátil de Tolower ()  ( More portable tolower implementation ) 
Me estoy desafiando a intentar intentar escribir una función que sea tan eficiente, portátil y a prueba de fallas posible. La función es muy simple y solo con...

2  Función para borrar un carácter en una cadena  ( Function to erase a character in a string ) 
void chrrem (char arr[], size_t len, size_t pos) { memmove(arr + pos, arr + (pos + 1), (len - pos) + 1); } Se supone que es simplemente rápido. Borra...

11  Optimizando el corrector de anagramas Java (comparar 2 cadenas)  ( Optimizing java anagram checker compare 2 strings ) 
Un anagrama es como una mezcla de las letras en una cadena: pots es un anagrama de detener wilma es un anagrama de ilwma Estoy pasando por el ...

9  Convierta una contraseña a una cadena fonética para usuarios finales  ( Convert a password to a phonetic string for end users ) 
Tanto como lo odio, a veces proporcionar contraseñas a las personas debe hacerse electrónicamente. Cuando hago eso, trato de eliminar cualquier ambigüedad que...




© 2022 respuesta.top Reservados todos los derechos. Centro de preguntas y respuestas reservados todos los derechos