«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Строка — проблемы JavaScript

Строка — проблемы JavaScript

Опубликовано 8 ноября 2024 г.
Просматривать:440

String - JavaScript Challenges

Вы можете найти весь код в этом посте в репозитории Github.


Проблемы, связанные со строками


Буквенно-цифровой

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

Случай с верблюдом Случай со змеей

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

Сравните номера версий

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

Сортировка номеров версий

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

Сжать строку
/**
 * @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 {строка} ул * @return {строка} */ функция compress(str) { если (!str) { возвращаться ""; } пусть сжатый = ""; пусть счет = 1; for (пусть я = 1; я 1) { сжатый = количество; } количество = 1; } } возврат сжатый; } // Пример использования console.log(compress("a")); // 'а' console.log(compress("аа")); // 'а2' console.log(compress("ааа")); // 'а3' console.log(compress("aaab")); // 'а3б' console.log(compress("aaabb")); // 'a3b2' console.log(compress("aaabba")); // 'a3b2a'

Распаковать строку
/**
 * @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 {строка} ул * @returns {строка} */ функция uncompress(str) { константный стек = []; пусть currentNum = 0; пусть currentStr = ""; for (const char of str) { if (char >= "0" && char 'абабаб' console.log(uncompress("3(ab2(c))")); // => 'abccabccabcc'

Найдите длину самого длинного слова в строке
/**
 * @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 {строка} ул * @return {число} */ функция longestLength(str) { const strArr = str.split(" "); пусть длина = 0; for (пусть я = 0; я длина) { длина = strArr[i].length; } } длина возврата; } // Пример использования console.log(longestLength("Самое длинное слово - самое длинное слово"); // => 14

Найдите слово самой длинной длины в строке
/**
 * @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 {строка} ул * @return {строка[]} */ функция longestWord(str) { const strArr = str.split(" "); константный результат = []; пусть макс = 0; for (const char of strArr) { if (char.length > max) { Макс = длина символа; } } for (const char of strArr) { if (char.length === max) { результат.push(символ); } } вернуть результат.join(""); } // Пример использования console.log(longestWord("Самое длинное слово - самое длинное слово"); // => "самое длинное слово"

Самый часто встречающийся персонаж
/**
 * @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 {строка} ул * @returns {строка | нить[]} */ функция счетчик (строка) { константная карта = новая карта(); константный результат = []; for (const char of str) { map.set(char, (map.get(char) ?? 0) 1); } const max = Math.max(...map.values()); for (const [ключ, значение] карты) { если (значение === макс) { результат.push(ключ); } } вернуть результат.длина === 1? результат[0]: результат; } // Пример использования console.log(count("abbccc")); // => 'с' console.log(count("abbcccddd")); // => ['c', 'd'];

Получить длину строки (поддержка смайлов)
/**
 * @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} ул * @return {Номер} */ функция getStringLength(str) { return Array.from(new Intl.Segmenter().segment(str)).length; } // Пример использования console.log(getStringLength("тест?")); // => 5 console.log("тест?".длина); // => 6

Ссылка
  • Буквенно-цифровые символы - Wikipedia.org
  • Соглашение об именах (программирование) - Wikipedia.org
  • 79. конвертировать Snake_case в CamelCase — BFE.dev
  • Версии программного обеспечения — Wikipedia.org
  • 157. сравнение семверов - BFE.dev
  • 165. Сравнить номера версий — LeetCode
  • 97. сжать строку — BFE.dev
  • 173. распаковать строку - BFE.dev
  • 145. наиболее часто встречающийся символ -BFE.dev

Заявление о выпуске Эта статья воспроизведена по адресу: https://dev.to/mitchell_cheng/string-javascript-challenges-54cf?1. Если обнаружено какое-либо нарушение прав, свяжитесь с [email protected], чтобы удалить ее.
Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3