8.4 KiB
title | localeTitle |
---|---|
Dna Pairing | دنا الاقتران |
تذكر استخدام Read-Search-Ask
إذا واجهتك مشكلة. حاول إقران البرنامج واكتب الكود الخاص بك
شرح المشكلة:
-
ستحصل على تسلسل حبلا الدنا وتحتاج إلى الحصول على الزوج وإعادتها كمجموعة ثنائية الأبعاد من أزواج القاعدة. ضع في اعتبارك أن السلاسل المتوفرة يجب أن تكون أولاً دائمًا.
-
طريقة أخرى لتفسير المشكلة: هناك أربعة أحرف محتملة موجودة في DNA: "A" و "T" و "G" و "C". يتم الجمع بين "A" و "T" معًا ، ويتم دائمًا إقران "G" و "C" معًا.
تقدم لك هذه المشكلة إدخالاً ، على سبيل المثال "ATCGA". كل من هذه الشخصيات الخمسة يفتقدون أزواجهم.
على سبيل المثال ، يجب أن يتم إقران الحرف الأول "A" مع "T" لإعطاء عنصر الصفيف ["A"، "T"].
يجب إقران الحرف الثاني "T" مع "A" لإعطاء عنصر الصفيف ["T" ، "A"].
عدد العناصر في الإخراج النهائي يساوي عدد الأحرف في الإدخال.
لا تتضمن هذه المشكلة إعادة ترتيب الإدخال في تركيبات أو تباينات مختلفة.
روابط ذات صلة
تلميح: 1
- هناك نوعان من حالة القاعدة ، AT و CG ، هذه تذهب في الاتجاهين. يمكنك استخدام التعبير العادي ، إذا كانت بيانات أي شيء يمكن أن تفكر به.
حاول أن تحل المشكلة الآن
تلميح: 2
- أود أن أوصي باستخدام التبديل ، لأنه يجعل الأمور أكثر سلاسة.
حاول أن تحل المشكلة الآن
تلميح: 3
- يجب أن تكون النتيجة صفيفًا من المصفوفات ، لذا ضع ذلك في الاعتبار عند دفع الأشياء.
حاول أن تحل المشكلة الآن
تنبيه المفسد!
الحل في المستقبل!
الحل الأساسي للكود:
` function pairElement(str) { // Return each strand as an array of two elements, the original and the pair. var paired = [];
// Function to check with strand to pair.
var search = function(char) {
switch (char) {
case 'A':
paired.push(['A', 'T']);
break;
case 'T':
paired.push(['T', 'A']);
break;
case 'C':
paired.push(['C', 'G']);
break;
case 'G':
paired.push(['G', 'C']);
break;
}
};
// Loops through the input and pair.
for (var i = 0; i < str.length; i++) {
search(str[i]);
}
return paired;
}
// test here
pairElement("GCG");
`
شرح الشفرة:
- البرنامج بسيط للغاية ، أفضل حل قد توصلت إليه هو استخدام مفتاح لالتقاط جميع العناصر الأربعة الممكنة. استخدام إذا كانت العبارات تأخذ الكثير من التعليمات البرمجية. يمكنك أيضًا استخدام التعبيرات العادية.
- نظرًا لأننا مضطرون إلى الأصل والزوج ، قررت اتخاذ جميع الحالات الأربع بدلاً من القاعدة الثانية.
- قم بإنشاء مصفوفة فارغة واستخدم وظيفة
search
لدفع القيم الصحيحة إلى المصفوفة وإعادتها.
روابط ذات صلة
حل الشفرة المتوسطة:
` function pairElement(str) { //create object for pair lookup var pairs = { "A": "T", "T": "A", "C": "G", "G": "C" } //split string into array of characters var arr = str.split(""); //map character to array of character and matching pair return arr.map(x => [x,pairs[x]]); }
//test here pairElement("GCG"); `
شرح الشفرة:
- قم أولاً بتعريف كائن بكل الاحتمالات الزوجية ، وهذا يتيح لنا العثور بسهولة على المفتاح أو القيمة.
- تقسيم
str
في صفيف أحرف حتى نتمكن من استخدام كل حرف للعثور على زوجها. - استخدم وظيفة الخريطة لتعيين كل حرف في الصفيف إلى مصفوفة ذات الحرف والزوج المطابق ، مما يؤدي إلى إنشاء مصفوفة ثنائية الأبعاد.
روابط ذات صلة
ملاحظات للمساهمات:
- لا تقم بإضافة حلول مشابهة لأي حلول موجودة. إذا كنت تعتقد أنها مشابهة ولكن أفضل ، فحاول دمج (أو استبدال) الحل المشابه الموجود.
- أضف شرحًا لحلك.
- تصنيف الحل في واحدة من الفئات التالية - الأساسي والمتوسط والمتقدم .
- الرجاء إضافة اسم المستخدم الخاص بك فقط إذا قمت بإضافة أي محتويات رئيسية ذات صلة . ( لا تزيل أي أسماء مستخدمين حالية )
نرى
Wiki Challenge Solution Template
كمرجع.