「労働者が自分の仕事をうまくやりたいなら、まず自分の道具を研ぎ澄まさなければなりません。」 - 孔子、「論語。陸霊公」
表紙 > プログラミング > 文字列 - JavaScript の課題

文字列 - JavaScript の課題

2024 年 11 月 8 日に公開
ブラウズ:232

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 {文字列} str * @return {文字列} */ 関数圧縮(str) { if (!str) { 戻る ""; } 圧縮 = ""; カウント = 1 とします。 for (let i = 1; i 1) { 圧縮 = カウント; } カウント = 1; } } 圧縮して返します。 } // 使用例 console.log(compress("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} 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 {文字列} str * @returns {string} */ 関数 uncompress(str) { const スタック = []; currentNum = 0 とします。 currentStr = ""; for (str の const char) { 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 {文字列} str * @return {数値} */ 関数最長の長さ(str) { const strArr = str.split(" "); 長さ = 0 とします。 for (let i = 0; i length) { 長さ = 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 {文字列} str * @return {文字列[]} */ 関数longestWord(str) { const strArr = str.split(" "); const 結果 = []; 最大 = 0 とします。 for (strArr の定数文字) { if (char.length > max) { 最大 = 文字の長さ; } } for (strArr の定数文字) { if (char.length === max) { result.push(char); } } return result.join(""); } // 使用例 console.log(longestWord("最も長い単語は thelongestword")); // => "最長の単語"

最も頻繁に出現する文字
/**
 * @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 {文字列} str * @returns {文字列 |弦[]} */ 関数カウント(文字列) { const マップ = 新しい Map(); const 結果 = []; for (str の const char) { map.set(char, (map.get(char) ?? 0) 1); } const max = Math.max(...map.values()); for (マップのconst [キー, 値]) { if (値 === 最大) { result.push(キー); } } return result.length === 1 ?結果[0] : 結果; } // 使用例 console.log(count("abbccc")); // => 'c' 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 {文字列} str * @return {数値} */ 関数 getStringLength(str) { return Array.from(new Intl.Segmenter().segment(str)).length; } // 使用例 console.log(getStringLength("test?")); // => 5 console.log("テスト?".length); // => 6

参照
  • 英数字 - Wikipedia.org
  • 命名規則 (プログラミング) - Wikipedia.org
  • 79.スネークケースをキャメルケースに変換 - 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