"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Chaîne – Défis JavaScript

Chaîne – Défis JavaScript

Publié le 2024-11-08
Parcourir:513

String - JavaScript Challenges

Vous pouvez trouver tout le code dans cet article sur le repo Github.


Défis liés aux chaînes


Est alphanumérique

/**
 * @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

Etui Chameau Etui Serpent

// 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"

Comparez les numéros de version

/**
 * @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.

Tri des numéros de version

/**
 * @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' ]

Compresser une chaîne
/**
 * @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 {chaîne} chaîne * @return {chaîne} */ fonction compresser(str) { si (!str) { retour ""; } laissez compressé = ""; laissez compter = 1 ; pour (soit i = 1; i 1) { compressé = nombre ; } compte = 1 ; } } retour compressé ; } // Exemple d'utilisation console.log(compress("a")); // 'un' 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'

Décompresser une chaîne
/**
 * @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 {chaîne} chaîne * @returns {chaîne} */ fonction décompresser(str) { pile const = []; soit currentNum = 0 ; laissez currentStr = ""; pour (const char de str) { if (char >= "0" && char 'ababab' console.log(uncompress("3(ab2(c))")); // => 'abccabcccabcc'

Trouver la longueur du mot le plus long d'une chaîne
/**
 * @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 {chaîne} chaîne * @return {numéro} */ fonction longueur la plus longue (str) { const strArr = str.split(" "); soit longueur = 0 ; pour (soit i = 0; i longueur) { longueur = strArr[i].longueur; } } longueur de retour ; } // Exemple d'utilisation console.log(longestLength("Le mot le plus long est le mot le plus long")); // => 14

Trouver le mot avec la plus longue longueur dans une chaîne
/**
 * @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 {chaîne} chaîne * @return {chaîne[]} */ fonction mot le plus long (str) { const strArr = str.split(" "); résultat const = []; soit max = 0 ; pour (const char de strArr) { if (char.length > max) { max = char.longueur; } } pour (const char de strArr) { if (char.length === max) { result.push(char); } } return result.join(""); } // Exemple d'utilisation console.log(longestWord("Le mot le plus long est le mot le plus long")); // => "le mot le plus long"

Caractère le plus fréquent
/**
 * @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 {chaîne} chaîne * @returns {chaîne | chaîne[]} */ fonction compte(str) { const carte = nouvelle carte (); résultat const = []; pour (const char de str) { map.set(char, (map.get(char) ?? 0) 1); } const max = Math.max(...map.values()); pour (const [clé, valeur] de la carte) { si (valeur === max) { résultat.push(clé); } } return result.length === 1 ? résultat[0] : résultat ; } // Exemple d'utilisation console.log(count("abbccc")); // => 'c' console.log(count("abbcccddd")); // => ['c', 'd'];

Obtenir la longueur de la chaîne (supporte les emojis)
/**
 * @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 {String} chaîne * @return {Numéro} */ fonction getStringLength(str) { return Array.from(new Intl.Segmenter().segment(str)).length; } // Exemple d'utilisation console.log(getStringLength("test?")); // => 5 console.log("test?".longueur); // => 6

Référence
  • Alphanumériques - Wikipédia.org
  • Convention de dénomination (programmation) - Wikipedia.org
  • 79. convertir Snake_case en camelCase - BFE.dev
  • Gestion de versions de logiciels - Wikipedia.org
  • 157. comparaison semver - BFE.dev
  • 165. Comparer les numéros de version - LeetCode
  • 97. compresser une chaîne - BFE.dev
  • 173. décompresser la chaîne - BFE.dev
  • 145. caractère le plus fréquent -BFE.dev

Déclaration de sortie Cet article est reproduit sur : https://dev.to/mitchell_cheng/string-javascript-challenges-54cf?1 En cas de violation, veuillez contacter [email protected] pour le supprimer.
Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3