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