นี่คือความท้าทายกอล์ฟรหัสค่อนข้างง่าย โปรแกรมของคุณที่มีสตริง ASCII คือการแยกสตริงนั้นออกเป็นสองสายซึ่งมันจะทำการประเมิน หากสตริงที่สองคือ "ภายหลัง" มากกว่าสตริงแรกมันจะส่งกลับ 1 หากเป็น "ก่อนหน้า" กว่าสตริงแรกมันจะส่งกลับ -1 และถ้าพวกเขาเหมือนกันก็จะกลับ 0 ชี้แจงว่า "ในภายหลัง" และ "ก่อนหน้า" หมายถึงอะไรลองดูที่รหัสอักขระ ASCII คุณต้องเปรียบเทียบอักขระแต่ละตัวของสตริงโดยถือว่าแต่ละอักขระเป็นตัวเลขของตัวเลข หลังจากนั้นหมายถึงจำนวนที่มากขึ้นเกิดขึ้นหลังจากจำนวนที่น้อย สตริงจะถูกจัดรูปแบบด้วยอักขระยัติภังค์เพื่อแยกกลุ่มอินพุตสองกลุ่ม
ดูตัวอย่างนี้:
7-91ในฐานะที่เป็นอินพุตควรกลับ
7แปลงรหัส ASCII55และแปลงรหัส9ASCII57ในฐานะที่
57เกิดขึ้นหลังจากที่ตัวเลข55, ช้ากว่า97
ตัวอย่างอื่น:
LKzb-LKajตามที่อินพุตควรกลับมา-1ลำดับรหัส ASCII สำหรับสิ่งนี้คือ
76-75-122-98และ76-75-97-106
นี่เป็นความท้าทายของการเล่นกอล์ฟและการนับจำนวนเป็นวิธีการให้คะแนน
อินพุตใดก็ได้จาก 95 อักขระที่สามารถพิมพ์ได้ของ ASCII ได้รับการยอมรับไม่รวมช่องว่างและยัติภังค์สำหรับทุกอย่างยกเว้นการแยกอินพุต นอกจากนี้สตริงจะไม่รับประกันว่าจะมีความยาวเท่ากัน
โชคดี!
แก้ไข:เพื่อให้ชัดเจนยิ่งขึ้นอักขระแต่ละตัวจะได้รับการปฏิบัติเหมือนตัวเลขในตัวเลข ในตัวอย่างLKzb-LKajแม้ว่าจะjช้ากว่าb, zช้ากว่าaและเนื่องจากเป็นหลักที่สำคัญมากขึ้นก็จะมีความสำคัญ สตริงที่ระบุจะต้องมีอักขระอย่างน้อย 3 ตัวซึ่งจะเป็นการกำจัดสตริงว่างออกจากขอบเขตของปัญหานี้
แก้ไข:ต่อไปนี้เป็นกรณีทดสอบเพิ่มเติมสำหรับความช่วยเหลือของคุณ:
A-9->-111-Z->-13h~J*-3h~J*->0Xv-Y0->1
11-Z-> -1ไม่สมเหตุสมผลตามถ้อยคำปัจจุบันของคำถาม Z(90) มากกว่า1(49) และเป็นตัวอักษรที่สำคัญที่สุด โปรดอธิบายว่าการเปรียบเทียบสตริงที่มีความยาวแตกต่างกันอย่างไร
11>Z 1<Zจะต้องมีพฤติกรรมที่ไม่ได้กำหนดที่จะทำกับสตริงที่มีความยาวแตกต่างกันหรือตัวอย่างที่ไม่ถูกต้อง
~126 !จากนั้นจะเพิ่มขึ้นหลักถัดไปโดยหนึ่งกลับหลักเริ่มต้น การเพิ่มขึ้นของตัวเลขที่สำคัญที่สุดแต่ละครั้งจะเทียบเท่ากับการเพิ่มตัวเลขที่มีความสำคัญมากที่สุดที่สองโดย 127