19
การประเมิน Dotty Strings
จงเขียนโปรแกรมที่ใช้ในสตริงที่มีความยาวแปลกที่มีเพียงตัวละครและ. :ด้วยความช่วยเหลือของกองซ้อนที่ว่างเปล่าเริ่มสร้างหมายเลขจากสายอักขระนี้ดังนี้: ทุกตัวอักษรCในสตริง (ไปจากซ้ายไปขวา) ... หากcคือ.และสแต็กมีองค์ประกอบน้อยกว่า 2 ให้กด 1 บนสแต็ก หากcคือ.และสแต็กมี 2 องค์ประกอบหรือมากกว่าให้ปรากฏค่าสูงสุดสองค่าออกจากสแต็กและส่งผลรวมของพวกเขาไปยังสแต็ก หากcคือ:และสแต็กมีองค์ประกอบน้อยกว่า 2 ให้กด 2 บนสแต็ก หากcคือ:และสแต็กมีองค์ประกอบ 2 ตัวหรือมากกว่าให้แสดงค่าสูงสุดสองค่าออกจากสแต็กและดันผลิตภัณฑ์ลงบนสแต็ก หมายเลขผลลัพธ์คือค่าที่ด้านบนสุดของสแต็ก โปรแกรมของคุณควรพิมพ์หมายเลขนี้ไปยัง stdout (พร้อมกับขึ้นบรรทัดใหม่ตัวเลือก) (การวิเคราะห์เพียงเล็กน้อยแสดงให้เห็นว่ามีจำนวนที่เหลืออยู่เพียงหมายเลขเดียวเท่านั้นยกเว้นว่าสตริงมีความยาวเท่ากันซึ่งเป็นสาเหตุที่เราไม่สนใจสิ่งเหล่านั้นในความเป็นจริงสแต็กไม่เคยมีองค์ประกอบมากกว่า 2 รายการ) ตัวอย่างเช่นหมายเลขสำหรับ::...:.:.คือ 9: 2 1 2 2 /______ stack just after the character below is handled 2 2 4 4 5 5 7 …