Menu
CoddyTech
flag Ar iconالعربيةdown icon

Baseball Game

سهلالمكدسpython iconjava iconcpp iconc iconjs icon+10

أنت تحسب النقاط في لعبة غير مألوفة. تُقرأ القائمة operations من اليسار إلى اليمين، وتغيّر كل خانة فيها سجلّ النقاط. يضيف عدد صحيح مثل "7" أو "-2" هذه النقاط إلى السجل. تضيف "+" نقاطًا تساوي مجموع أحدث نقطتين، وتضيف "D" نقاطًا تساوي ضعف أحدث نقطة، وتحذف "C" أحدث نقطة من السجل نهائيًا.

اكتب دالة باسم calPoints تُرجع مجموع النقاط المتبقية في السجل بعد آخر عملية. مجموع السجل الفارغ هو 0.

الدالة

calPoints(operations: string-array) → integer
operationsstring-array
العمليات بالترتيب: أعداد صحيحة كنص، أو "+"، أو "D"، أو "C"
تُرجعinteger
مجموع النقاط التي لا تزال مسجّلة في النهاية

القيود

  • 1 ≤ operations.length ≤ 5000
  • كل إدخال هو "+" أو "D" أو "C" أو عدد صحيح مكتوب بالنظام العشري بحيث -3 × 104 ≤ value ≤ 3 × 104.
  • كل عملية صالحة: لا تأتي "+" إلا عندما يحتوي السجل على درجتين على الأقل، ولا يأتي "D" و"C" إلا عندما يحتوي على درجة واحدة على الأقل.
  • كل نتيجة في السجل والمجموع النهائي يقعان ضمن نطاق عدد صحيح موقّع من 32 بت.

أمثلة

المدخلات
operations = ["4", "-2", "D", "+", "C", "7"]
المخرجات
5
الشرح
تتزايد السجلات إلى [4, -2]، وتضيف "D" القيمة -4، وتضيف "+" القيمة -2 + -4 = -6، وتحذف "C" تلك القيمة -6، ويأتي 7 أخيرًا. مجموع السجلات [4, -2, -4, 7] هو 5.

lock icon+13 اختبارات مخفية عند الإرسال

challenge icon

سؤال إضافي

هل يمكنك إرجاع المجموع دون جمع السجل في النهاية، بحيث تستغرق كل عملية، بما فيها الإلغاء، زمنًا O(1)؟

إعادة ضبط الشيفرة
def calPoints(operations):
    # اكتب الكود هنا
حالات الاختبار

الحالة 1

الحالة 2

الحالة 3

المدخلات

operations = ["4", "-2", "D", "+", "C", "7"]

المتوقع

5