यह एक काफी सरल कोड गोल्फ चुनौती है। ASCII स्ट्रिंग दिया गया आपका प्रोग्राम, उस स्ट्रिंग को दो स्ट्रिंग्स में पार्स करना है, जिसका वह मूल्यांकन करेगा। यदि दूसरा तार पहले वाले की तुलना में "बाद में" है, तो यह एक 1 लौटाएगा, अगर यह पहले वाले की तुलना में "पहले" है, तो यह -1 वापस आ जाएगा, और यदि वे समान हैं, तो यह 0. वापस आएगा। स्पष्ट करें कि "बाद में" और "पहले" का क्या मतलब है, चलो ASCII वर्ण कोडों पर एक नज़र डालें। आपको स्ट्रिंग के प्रत्येक चरित्र की तुलना करने की आवश्यकता है, उनमें से प्रत्येक को एक संख्या के अंकों के रूप में माना जाता है। बाद में एक बड़ी संख्या को संदर्भित करता है, एक छोटी संख्या के बाद होता है। स्ट्रिंग्स को दो इनपुट समूहों को अलग करने के लिए एक हाइफ़न वर्ण के साथ स्वरूपित किया जाएगा।
इस उदाहरण पर एक नज़र डालें:
7-9इनपुट के रूप में वापस आ जाना चाहिए1।
7ASCII कोड55में9कनवर्ट करता है , और ASCII कोड में कनवर्ट करता है57।जैसा कि
57संख्यात्मक रूप से होता है55,9बाद में होता है7।
एक और उदाहरण:
LKzb-LKajइनपुट के रूप में वापस आ जाना चाहिए-1इसके लिए ASCII कोड सीक्वेंस हैं
76-75-122-98और76-75-97-106
यह एक कोड गोल्फ चुनौती है, और बाइट काउंट है कि कैसे प्रविष्टियों को स्कोर किया जाएगा।
95 मुद्रण योग्य ASCII वर्णों में से किसी भी इनपुट को रिक्त स्थान को छोड़कर, और कुछ के लिए हाइफ़न को स्वीकार किया जाता है, लेकिन इनपुट को अलग करके। इसके अलावा, तार समान लंबाई होने की गारंटी नहीं है।
सौभाग्य!
EDIT: अधिक स्पष्ट होने के लिए, प्रत्येक वर्ण को एक संख्या में अंकों की तरह माना जाता है। उदाहरण में 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 से दूसरे सबसे महत्वपूर्ण अंक में वृद्धि के बराबर है।