Files
2018-10-16 21:32:40 +05:30

11 KiB

title, localeTitle
title localeTitle
Pig Latin خنزير اللاتينية

:triangular_flag_on_post: تذكر استخدام Read-Search-Ask إذا واجهتك مشكلة. حاول إقران البرنامج :busts_in_silhouette: واكتب الكود الخاص بك :pencil:

:checkered_flag: شرح المشكلة:

تحتاج إلى إنشاء برنامج من الإنجليزية إلى الخنزير اللاتينية. خنزير لاتيني يأخذ أول ساكن ساكن (أو ساكن الكتلة) لكلمة إنجليزية ، ينقلها إلى نهاية الكلمة ويضيف لاحقاً "أي". إذا كانت الكلمة تبدأ بحرف متحرك ، فما عليك سوى إضافة "way" إلى النهاية. قد لا يكون الأمر واضحًا ، لكنك بحاجة إلى إزالة جميع الحروف الساكنة حتى حرف العلة الأول في حالة عدم بدء الكلمة بحرف متحرك.

روابط ذات صلة

:speech_balloon: تلميح: 1

ربما تريد استخدام التعبيرات العادية. هذا سيسمح لك بتحويل الكلمات بسهولة.

حاول أن تحل المشكلة الآن

:speech_balloon: تلميح: 2

إذا كان الحرف الأول حرفًا متحركًا ، فخذ الكلمة بأكملها وأضف "طريقًا" في النهاية. خلاف ذلك يأتي الجزء صعب ، واتخاذ ساكن (ق) قبل حرف العلة الأول وتحريكه إلى النهاية وإضافة "ay". قد يكون هذا أمرًا مربكًا ، ولكنه ليس مجرد الحرف الساكن الأول ، بل كلهم ​​قبل الحرف الأول.

حاول أن تحل المشكلة الآن

:speech_balloon: تلميح: 3

سوف تحتاج إلى استخدام كل ما تعرفه عن التلاعب بالسلسلة للحصول على الجزء الأخير بشكل صحيح. ومع ذلك ، يمكن القيام به مع substr وحده.

حاول أن تحل المشكلة الآن

تنبيه المفسد!

علامة تحذير

الحل في المستقبل!

:beginner: الحل الأساسي للكود:

`function translatePigLatin(str) { // Create variables to be used var pigLatin = ''; var regex = /[aeiou]/gi;

// Check if the first character is a vowel if (str[0].match(regex)) { pigLatin = str + 'way';

} else if(str.match(regex) === null) { // Check if the string contains only consonants pigLatin = str + 'ay'; } else {

// Find how many consonants before the first vowel. 
var vowelIndice = str.indexOf(str.match(regex)[0]); 

// Take the string from the first vowel to the last char 
// then add the consonants that were previously omitted and add the ending. 
pigLatin = str.substr(vowelIndice) + str.substr(0, vowelIndice) + 'ay'; 

}

return pigLatin; }

// test here translatePigLatin("consonant"); `

:rocket: تشغيل الكود

شرح الشفرة:

  • جعل سلسلة فارغة لعقد كلمة الخنزير اللاتينية.
  • قم بتعيين التعبير العادي المناسب للمتغير.
  • إذا كان الحرف الأول حرفًا متحركًا ، فما عليك سوى إضافة طريقة إلى نهاية السلسلة وإعادتها.
  • إذا لم يكن الحرف الأول حرفًا متحركًا:
    • العثور على عدد من الحروف الساكنة قبل الحرف الأول مع مساعدة من indexOf() ، match() و regex.
    • بدء سلسلة خنزير اللاتينية مع أول حرف علة حتى النهاية.
    • أضف الحروف قبل حرف العلة الأول لنهاية السلسلة.
    • substr() يستخدم للتلاعب بالسلسلة هنا.
    • أضف ay إلى نهاية السلسلة وأعدها.

روابط ذات صلة

:sunflower: حل الشفرة المتوسطة:

`function translatePigLatin(str) { function check(obj) { return ['a','i','u','e','o'].indexOf(str.charAt(obj)) == -1 ? check(obj + 1) : obj; }

return str.substr(check(0)).concat((check(0) === 0 ? 'w' : str.substr(0, check(0))) + 'ay'); }

// test here translatePigLatin("consonant"); `

:rocket: تشغيل الكود

شرح الشفرة:

  • هذا هو نهج تفسيري وكذلك تعاودي لهذه المشكلة.
  • check() هي وظيفة تقوم بفحص الحرف الأول من السلسلة ليكون في صفيف حروف العلة ، ['a','i','u','e','o'] .
  • في حالة الحروف الساكنة ، فإن check() يستدعي نفسه على الحروف التالية حتى يعثر على الحرف الأول.
  • سيعود المؤشر إلى أي شيء يجد أنه آخر حرف مبدئي ، أي أن Schmidtsville سيكون 3.
  • بعد ذلك ، يتم رفع الحروف إلى أن تتم إزالة هذا الفهرس من السلسلة وتتصل مع نفس الجزء من السلسلة التي تمت إزالتها أو w وفقا لذلك ، ثم ay ay بغض النظر.

روابط ذات صلة

:rotating_light: الحل المتقدم للكود:

`function translatePigLatin(str) { var strArr = []; var tmpChar;

// check if the char is consonant using RegEx 
function isConsonant(char) { 
    return !/[aeiou]/.test(char); 
} 

// return initial str + "way" if it starts with vowel 
// if not - convert str to array 
if (!isConsonant(str.charAt(0))) 
    return str + "way"; 
else 
    strArr = str.split(""); 

// push all consonats to the end of the array 
while (isConsonant(strArr[0])) { 
    tmpChar = strArr.shift(); 
    strArr.push(tmpChar); 
} 

// convert array to string and concatenate "ay" at the end return strArr.join("")+"ay"; }

// test here translatePigLatin("consonant"); `

:rocket: تشغيل الكود

شرح الشفرة:

  • يتم استخدام isConsonant() للتحقق ما إذا كان الحرف حرف ساكن.
  • إذا كان الحرف الأول حرفًا متحركًا ، فأضف طريقًا إلى نهاية السلسلة وأعده.
  • إذا لم يكن الحرف الأول حرفًا متحركًا:
    • تقسيم السلسلة إلى صفيف باستخدام split() .
    • دفع جميع الحروف الساكنة إلى نهاية مجموعة مع مساعدة من shift() push() .
    • تحويل مجموعة إلى سلسلة باستخدام join() وإضافة ay إلى نهاية السلسلة. أعده.

روابط ذات صلة

:trophy: ائتمانات:

إذا وجدت هذه الصفحة مفيدة ، يمكنك أن تقول شكرا للمساهمين من خلال نسخ ولصق السطر التالي في الدردشة الرئيسية:

Thanks @Rafase282 @sabahang @aganita @Hallaathrad for your help with Algorithm: Pig Latin

:clipboard: ملاحظات للمساهمات:

  • :warning: لا تقم بإضافة حلول مشابهة لأي حلول موجودة. إذا كنت تعتقد أنها مشابهة ولكن أفضل ، فحاول دمج (أو استبدال) الحل المشابه الموجود.
  • أضف شرحًا لحلك.
  • تصنيف الحل في واحدة من الفئات التالية - الأساسي والمتوسط والمتقدم . :traffic_light:
  • الرجاء إضافة اسم المستخدم الخاص بك فقط إذا قمت بإضافة أي محتويات رئيسية ذات صلة . ( :warning: لا تزيل أي أسماء مستخدمين حالية )

نرى :point_right: Wiki Challenge Solution Template كمرجع.