"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > سلسلة - تحديات جافا سكريبت

سلسلة - تحديات جافا سكريبت

تم النشر بتاريخ 2024-11-08
تصفح:652

String - JavaScript Challenges

يمكنك العثور على جميع التعليمات البرمجية في هذا المنشور في repo 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 {string} شارع * @العودة {سلسلة} */ ضغط الوظيفة (شارع) { إذا (!ستر) { يعود ""؛ } دع مضغوط = ""; دعونا العد = 1؛ من أجل (دع i = 1؛ i 1) { مضغوط = العد؛ } العد = 1؛ } } العودة مضغوطة } // مثال الاستخدام console.log(compress("a")); // "أ" console.log(compress("aa")); // "أ2" console.log(compress("aaa")); // "أ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 {string} شارع * @إرجاع {سلسلة} */ وظيفة فك الضغط (شارع) { مكدس ثابت = []؛ دع الرقم الحالي = 0؛ دع currentStr = ""; لـ (const char of str) { إذا (شار >= "0" && شار 'أباب' console.log(uncompress("3(ab2(c))")); // => "أبككابككابك"

العثور على طول أطول كلمة في السلسلة
/**
 * @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} شارع * @العودة {رقم} */ وظيفة أطول طول (شارع) { const strArr = str.split(" "); دع الطول = 0؛ من أجل (دع 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 {string} شارع * @return {سلسلة[]} */ وظيفة أطول كلمة (شارع) { const strArr = str.split(" "); نتيجة ثابتة = []؛ دع الحد الأقصى = 0؛ لـ (const char of strArr) { إذا (char.length > الحد الأقصى) { الحد الأقصى = شار. الطول؛ } } لـ (const char of strArr) { إذا (char.length === الحد الأقصى) { result.push(char); } } إرجاع النتيجة. الانضمام(""); } // مثال الاستخدام 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 {string} شارع * @returns {سلسلة | خيط[]} */ عدد الوظائف (شارع) { خريطة ثابتة = خريطة جديدة ()؛ نتيجة ثابتة = []؛ لـ (const char of str) { Map.set(char, (map.get(char) ?? 0) 1); } const max = Math.max(...map.values()); لـ (const [مفتاح، قيمة] للخريطة) { إذا (القيمة === الحد الأقصى) { result.push(key); } } نتيجة الإرجاع. الطول === 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. تحويل حالة الثعبان إلى حالة الجمل - 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