اذهب إلى المحتوى

السؤال

نشر

 مصفوفة تسمّى تماثلية اذا حققت ما يلي:
الحد الأول مساو للحد الأخير, والحد الثاني مساو للحد قبل الأخير وهكذا…
اكتب عملية تراجعية تتلقى مصفوفة حدودها من نمط صحيح على العملية ان تعيد true اذا كانت المصفوفة تماثلية والا تعيد false 
 

Recommended Posts

  • 0
نشر

مرحبا ميريام،

يمكننى تقديم مساعدة لفهم الشيفرة البرمجية و ليس تقديم حل، عليك البحث على الانترنت و التعلم و التجريب حتى تنجحي.

public static bool IsPalindrome(string text, int L, int R)

مثلا نعرف تابع بالشكل السابق يعيد النمط bool و يأخذ سلسلة نصية.

تعريف الدالة التراجعية أنها دالة تستدعي نفسها عدة مرات للوصول للحل.

أي ضمن تعريفها، سيتم استدعائها عدة مرات و في كل مرة ستأخذ وسطاء مختلفين.

عمل الخوارزمية:

في كل مرة سوف نتأكد من تساوي قيمتين من عناصر السلسلة (الأولى و الأخيرة - الثانية و قبل الأخيرة ..)

أي نتأكد من أن العنصر رقم 0 يساوي العنصر n-1 والعنصر رقم 1 يساوي العنصر رقم n-2

في كل مرة نستدعي الدالة مع وسيطين i و n-1-i ونقارنهم.

بفرض وسطاء الدالة هم L  - R أي العنصر الأيسر و الأيمن نتحقق في كل مرة من التالي:

if (text[L] != text[R])
{
	return false;
}

ويتم استدعاء الدالة بعد اختبار الشرط مرة أخرى بتحريك الوسطاء 

IsPalindrome(text, L+1, R-1);

إن شرط توقف الدالة هو وصول الوسطاء لفحص نفس العنصر حيث تعيد الالة إجابة عندها.

أرجو إتباع الشرح وتطبيقه

شكرا لكِ

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...