"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > Cadena: desafíos de JavaScript

Cadena: desafíos de JavaScript

Publicado el 2024-11-08
Navegar:878

String - JavaScript Challenges

Puedes encontrar todo el código en esta publicación en el repositorio de Github.


Desafíos relacionados con cuerdas


es alfanumérico

/**
 * @param {any} char
 * @return {Boolean}
 */

function isAlphaNumeric(char) {
  return /[A-Za-z0-9]/.test(char);
}

// Usage example
console.log(isAlphaNumeric("a")); // => true
console.log(isAlphaNumeric(0)); // => true
console.log(isAlphaNumeric("!")); // => false

Estuche camello Estuche serpiente

// camel case to snake case
/**
 * @param {string} str
 * @return {string}
 */
function toKebabCase(str) {
  let temp = str.replace(/[A-Z]/g, function (i) {
    return "_"   i.toLowerCase();
  });

  if (temp[0] === "_") {
    temp = temp.slice(1);
  }

  return temp;
}

// Usage example
console.log(toKebabCase("testMethod")); // => "test_method"

// snake case to camel case
/**
 * @param {string} str
 * @return {string}
 */
function toCamelCase(str) {
  return str.replace(
    /([a-z])_([a-z])/gi,
    (_, left, right) => left   right.toUpperCase()
  );
}

// Usage example
console.log(toCamelCase("test_method")); // => "testMethod"

Comparar números de versión

/**
 * @param {string} version1
 * @param {string} version2
 * @return {number}
 */

function compareVersion(version1, version2) {
  const v1Arr = version1.split(".");
  const v2Arr = version2.split(".");

  for (let i = 0; i  v2Num) {
      return 1;
    } else if (v1Num  1, meaning first one is greater
console.log(compareVersion("12.1.0", "12.1.2")); // => -1, meaning latter one is greater
console.log(compareVersion("5.0.1", "5.0.1")); // => 0, meaning they are equal.

Clasificación de números de versión

/**
 * @param {string[]} versions
 * @return {string[]}
 */

function sortVersions(versions) {
  return versions.sort((a, b) => {
    const aParts = a.split(".").map(Number);
    const bParts = b.split(".").map(Number);

    for (let i = 0; i  [ '0.1.1', '0.302.1', '2.3.3', '4.2', '4.3.4.5', '4.3.5' ]

Comprimir una cadena
/**
 * @param {string} str
 * @return {string}
 */

function compress(str) {
  if (!str) {
    return "";
  }

  let compressed = "";
  let count = 1;

  for (let i = 1; i  1) {
        compressed  = count;
      }
      count = 1;
    }
  }

  return compressed;
}

// Usage example
console.log(compress("a")); // 'a'
console.log(compress("aa")); // 'a2'
console.log(compress("aaa")); // 'a3'
console.log(compress("aaab")); // 'a3b'
console.log(compress("aaabb")); // 'a3b2'
console.log(compress("aaabba")); // 'a3b2a'
/** * @param {cadena} cadena * @return {cadena} */ función comprimir (cadena) { si (!cadena) { devolver ""; } dejar comprimido = ""; deja contar = 1; for (sea i = 1; i 1) { comprimido = contar; } contar = 1; } } retorno comprimido; } // Ejemplo de uso console.log(compress("a")); // 'a' console.log(compress("aa")); // 'a2' console.log(compress("aaa")); // 'a3' console.log(compress("aaab")); // 'a3b' console.log(compress("aaabb")); // 'a3b2' console.log(compress("aaabba")); // 'a3b2a'

Descomprimir una cadena
/**
 * @param {string} str
 * @return {string}
 */

function compress(str) {
  if (!str) {
    return "";
  }

  let compressed = "";
  let count = 1;

  for (let i = 1; i  1) {
        compressed  = count;
      }
      count = 1;
    }
  }

  return compressed;
}

// Usage example
console.log(compress("a")); // 'a'
console.log(compress("aa")); // 'a2'
console.log(compress("aaa")); // 'a3'
console.log(compress("aaab")); // 'a3b'
console.log(compress("aaabb")); // 'a3b2'
console.log(compress("aaabba")); // 'a3b2a'
/** * @param {cadena} cadena * @returns {cadena} */ función descomprimir (cadena) { pila constante = []; dejar número actual = 0; let currentStr = ""; para (const char de str) { si (char >= "0" && char 'ababab' console.log(uncompress("3(ab2(c))")); // => 'abccabccabcc'

Encuentra la longitud de la palabra más larga de una cadena.
/**
 * @param {string} str
 * @return {string}
 */

function compress(str) {
  if (!str) {
    return "";
  }

  let compressed = "";
  let count = 1;

  for (let i = 1; i  1) {
        compressed  = count;
      }
      count = 1;
    }
  }

  return compressed;
}

// Usage example
console.log(compress("a")); // 'a'
console.log(compress("aa")); // 'a2'
console.log(compress("aaa")); // 'a3'
console.log(compress("aaab")); // 'a3b'
console.log(compress("aaabb")); // 'a3b2'
console.log(compress("aaabba")); // 'a3b2a'
/** * @param {cadena} cadena * @return {número} */ función longitud más larga (cadena) { const strArr = str.split(" "); sea ​​longitud = 0; for (sea i = 0; i longitud) { longitud = strArr[i].longitud; } } longitud de retorno; } // Ejemplo de uso console.log(longestLength("La palabra más larga es la palabra más larga")); // => 14

Encuentra la palabra con mayor longitud en una cadena
/**
 * @param {string} str
 * @return {string}
 */

function compress(str) {
  if (!str) {
    return "";
  }

  let compressed = "";
  let count = 1;

  for (let i = 1; i  1) {
        compressed  = count;
      }
      count = 1;
    }
  }

  return compressed;
}

// Usage example
console.log(compress("a")); // 'a'
console.log(compress("aa")); // 'a2'
console.log(compress("aaa")); // 'a3'
console.log(compress("aaab")); // 'a3b'
console.log(compress("aaabb")); // 'a3b2'
console.log(compress("aaabba")); // 'a3b2a'
/** * @param {cadena} cadena * @return {cadena[]} */ función palabra más larga (cadena) { const strArr = str.split(" "); resultado constante = []; sea ​​máximo = 0; para (const char de strArr) { si (longitud de caracteres > máx) { max = char.longitud; } } para (const char de strArr) { si (char.length === max) { resultado.push(char); } } devolver resultado.join(""); } // Ejemplo de uso console.log(longestWord("La palabra más larga es la palabra más larga")); // => "la palabra más larga"

Personaje que aparece con más frecuencia
/**
 * @param {string} str
 * @return {string}
 */

function compress(str) {
  if (!str) {
    return "";
  }

  let compressed = "";
  let count = 1;

  for (let i = 1; i  1) {
        compressed  = count;
      }
      count = 1;
    }
  }

  return compressed;
}

// Usage example
console.log(compress("a")); // 'a'
console.log(compress("aa")); // 'a2'
console.log(compress("aaa")); // 'a3'
console.log(compress("aaab")); // 'a3b'
console.log(compress("aaabb")); // 'a3b2'
console.log(compress("aaabba")); // 'a3b2a'
/** * @param {cadena} cadena * @returns {cadena | cadena[]} */ función contar(cadena) { mapa constante = nuevo mapa(); resultado constante = []; para (const char de str) { map.set(char, (map.get(char)?? 0) 1); } const máx = Math.max(...map.values()); for (const [clave, valor] del mapa) { si (valor === máximo) { resultado.push(clave); } } devolver resultado.longitud === 1? resultado[0] : resultado; } // Ejemplo de uso console.log(count("abbccc")); // => 'c' console.log(count("abccccdd")); // => ['c', 'd'];

Obtener longitud de cadena (emojis de soporte)
/**
 * @param {string} str
 * @return {string}
 */

function compress(str) {
  if (!str) {
    return "";
  }

  let compressed = "";
  let count = 1;

  for (let i = 1; i  1) {
        compressed  = count;
      }
      count = 1;
    }
  }

  return compressed;
}

// Usage example
console.log(compress("a")); // 'a'
console.log(compress("aa")); // 'a2'
console.log(compress("aaa")); // 'a3'
console.log(compress("aaab")); // 'a3b'
console.log(compress("aaabb")); // 'a3b2'
console.log(compress("aaabba")); // 'a3b2a'
/** * @param {Cadena} cadena * @return {Número} */ función getStringLength(cadena) { return Array.from(new Intl.Segmenter().segment(str)).length; } // Ejemplo de uso console.log(getStringLength("prueba?")); // => 5 console.log("prueba?".longitud); // => 6

Referencia
  • Alfanuméricos - Wikipedia.org
  • Convención de nomenclatura (programación) - Wikipedia.org
  • 79. convertir Snake_case a camelCase - BFE.dev
  • Control de versiones de software - Wikipedia.org
  • 157. comparación de semver - BFE.dev
  • 165. Comparar números de versión: LeetCode
  • 97. comprimir una cadena - BFE.dev
  • 173. descomprimir cadena - BFE.dev
  • 145. carácter que aparece con más frecuencia -BFE.dev

Declaración de liberación Este artículo se reproduce en: https://dev.to/mitchell_cheng/string-javascript-challenges-54cf?1 Si hay alguna infracción, comuníquese con [email protected] para eliminarla.
Último tutorial Más>

Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.

Copyright© 2022 湘ICP备2022001581号-3