สรุป
รหัสกอล์ฟเป็นสิ่งที่ดี พายเป็นสิ่งที่ดี เมื่อคุณรวมสองสิ่งเข้าด้วยกันสิ่งที่ดีเท่านั้นที่จะเกิดขึ้นได้
ข้อมูลจำเพาะ
ในการท้าทายนี้คุณจะจัดการร้านพาย ผู้ใช้จะสามารถป้อนข้อมูลห้าคำสั่งแตกต่างกัน: list, count, buy, และsell exitนี่คือข้อกำหนดสำหรับแต่ละ:
listพิมพ์รายการของพายทั้งหมดที่เป็นเจ้าของและจำนวน คั่นด้วย
|และ pad ด้วยช่องว่างทั้งสองด้าน|ต้องจัดตำแหน่ง จำนวนพายอาจเป็นค่าลบ (นั่นหมายความว่าคุณเป็นหนี้กับใครบางคน:() ตัวอย่างเช่น:| apple | 500 | | blueberry | 2 | | cherry | -30 |
count [type]พิมพ์จำนวน
{{type}}พายที่มี พิมพ์ "ไม่มี{{type}}พาย!" ถ้าไม่มี{{type}}จะตรงกับ regex เสมอ\w+(เช่นจะเป็นคำเดียวเสมอ) ตัวอย่างเช่นถ้าฉันมีจำนวนของพายที่แสดงในรายการตัวอย่างข้างต้นแล้ว> count apple 500 > count peach There is no peach pie!
buy [n] [type]เพิ่ม
{{n}}ลงในจำนวนของ{{type}}วงกลมและพิมพ์ สร้าง{{type}}วงกลมหากไม่มีอยู่{{n}}จะตรงกับ regex เสมอ[0-9]+(กล่าวคือจะเป็นตัวเลขเสมอ) นี่เป็นอีกตัวอย่างหนึ่ง (ที่มีคลังโฆษณาพายเหมือนกับตัวอย่างก่อนหน้านี้):> count blueberry 2 > buy 8 blueberry 10
sell [n] [type]ลบ
{{n}}ออกจากการนับจำนวนของ{{type}}วงกลมและพิมพ์ สร้าง{{type}}วงกลมหากไม่มีอยู่ พายอาจเป็นลบได้ (โอ้ไม่นั่นหมายความว่าคุณเป็นหนี้คนพาย!)> sell 15 blueberry -5 > buy 5 blueberry 0
exitพิมพ์ "ร้านพายปิดแล้ว!" และออกจากโปรแกรม
> exit The pie store has closed!
ชี้แจงเพิ่มเติม
- หากมีการเรียกใช้ฟังก์ชันที่ไม่มีอยู่ (คำแรก) ให้พิมพ์ "นั่นไม่ใช่คำสั่งที่ถูกต้อง"
- หากมีการเรียกใช้ฟังก์ชันที่มีอยู่ด้วยอาร์กิวเมนต์ที่ไม่ถูกต้อง (คำถัดจากคำแรก) โปรแกรมของคุณจะทำงานอย่างไร "การขัดแย้งที่ไม่ถูกต้อง" รวมถึงการขัดแย้งมากเกินไปการโต้แย้งน้อยเกินไป
{{n}}ไม่เป็นตัวเลข ฯลฯ - พายเป็นสิ่งที่ดี
- ข้อมูลของคุณจะต้องแตกต่างจากผลลัพธ์ของคุณ หากคุณกำลังรันโปรแกรมบนบรรทัดคำสั่ง / เทอร์มินัล / เชลล์ / ข้อความอื่น ๆ คุณต้องใส่คำนำหน้าด้วยเครื่องหมาย "
> "(" มากกว่า "เครื่องหมายและช่องว่าง) หรือคำนำหน้าอินพุตเชลล์อื่น ๆ - พายเป็นสิ่งที่ดี
หากคำอธิบายทั้งหมดนี้ไม่ดีพอนี่คือตัวอย่างผลลัพธ์:
> list > buy 10 apple 10 > sell 10 blueberry -10 > list | apple | 10 | | blueberry | -10 | > count apple 10 > count peach There is no peach pie! > exit The pie store has closed!หากคุณซื้อ / ขายพายและนับสุทธิจะกลายเป็น
0คุณสามารถอย่างใดอย่างหนึ่งเก็บไว้ในlistหรือไม่และคุณสามารถอย่างใดอย่างหนึ่งกลับ0หรือThere is no {{type}} pie!เมื่อคุณcountมัน- นี่คือรหัสกอล์ฟ ; รหัสที่สั้นที่สุดชนะ
- ฉันพูดถึงว่าพายนั้นดีหรือไม่?
buy 1 apple sell 1 appleและมันจะถูกต้องสำหรับcount appleการส่งคืน0แทนThere is no apple pie!หรือไม่?
