Menu
CoddyTech

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.
challenge icon

سؤال إضافي

كيف ستضيف عمليةً تتراجع عن أحدث "C"، فتعيد النتيجة الملغاة، بزمن O(1)؟

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

اختبار #1

اختبار #2

اختبار #3

وسيط

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

الإخراج المتوقع

5