यह एक कस्टम स्कोरिंग प्रणाली के साथ एक कोड-चुनौती है, जहां सबसे कम स्कोर जीतता है।
परिचय
कई स्मार्टफोन 2 डी वर्चुअल कीबोर्ड पर अपनी उंगली को स्वाइप करके टेक्स्ट दर्ज करने की अनुमति देते हैं । यह तकनीक आमतौर पर एक भविष्यवाणी एल्गोरिथ्म के साथ संयुक्त होती है जो अनुमानित शब्दों की एक सूची को आउटपुट करती है, कम से कम संभावना से छंटनी की जाती है।
इस चुनौती में:
- हम एक भर में स्वाइप करने जा रहे हैं 26 अक्षरों के सबसेट तक सीमित एक आयामी कीबोर्ड ।
- वहां होगा कोई भविष्यवाणी एल्गोरिथ्म नहीं : हम चाहते हैं कि प्रत्येक शब्द विशिष्ट रूप से इसके 'स्वाइप अनुक्रम' द्वारा पहचाना जाए।
- हम चाहते हैं कि कीबोर्ड अनुकूलित हो इस तरह से किया कि शब्दों की दी गई सूची के लिए कुल चालों की संख्या कम से कम हो।
एक आयाम में स्वाइप करना
नीचे एक लेक्सोग्राफिक रूप से सभी अक्षरों के साथ 1 डी कीबोर्ड है:
ABCDEFGHIJKLMNOPQRSTUVWXYZ
NB: यदि आप मोबाइल से ब्राउज़ कर रहे हैं तो यह कई पंक्तियों पर प्रदर्शित हो सकता है। कृपया इसे एक पंक्ति के रूप में सोचें।
ऐसे कीबोर्ड पर ' GOLF ' शब्द दर्ज करने के लिए , हम करेंगे:
- शुरू करे G
- के दाईं ओर स्वाइप करें O
- बाईं ओर स्वाइप करें F
क्योंकि और के Lबीच स्थित हैOF , हम बस वहाँ रोके बिना स्वाइप पर चलते हैं।
तो इस कीबोर्ड पर ' GOLF ' का स्वाइप क्रम है GOF।
आम तौर पर:
- पहले और आखिरी अक्षर हमेशा शामिल होते हैं।
- अन्य अक्षरों को शामिल किया गया है यदि और केवल उनके बाद एक दिशा परिवर्तन की आवश्यकता होती है।
बार-बार लिखे जाने वाले अक्षरों को एक ही अक्षर माना जाना चाहिए। उदाहरण के लिए, उपरोक्त कीबोर्ड पर:
- ' LOOP ' को इनकोड किया जाएगा LP(बिना रुके O)
- ' GOOFY ' को एन्कोड किया जाएगा GOFY( Oइसमें शामिल है क्योंकि वहां एक दिशा परिवर्तन है - इसलिए नहीं कि यह दोगुना है)
कीबोर्ड अनुकूलन
चलिए शब्दों की निम्नलिखित सूची पर विचार करते हैं: [' PROGRAMMING ', ' PUZZLES ', ' AND ', ' CODE ', ' GOLF ']।
इन शब्दों को टाइप करने के लिए हमें 16 अलग-अलग अक्षरों की आवश्यकता होती है, इसलिए हमें केवल 16-अक्षर वाले कीबोर्ड की आवश्यकता होती है। निम्नलिखित एक है - फिर से - lexicographically सॉर्ट किया गया:
ACDEFGILMNOPRSUZ
इस कीबोर्ड के साथ, इस तरह से शब्दों को इनकोड किया जाएगा:
- कार्यक्रम :PRGRAMING (9 चाल)
- पजल्स :PZES (4 चाल)
- और :AND (3 चाल)
- कोड : CODE(4 चाल)
- GOLF : GOF(3 चाल)
कि सभी शब्दों के लिए कुल 23 चालें हैं ।
लेकिन हम इस कीबोर्ड से बहुत बेहतर कर सकते हैं:
CGODSELZNUIFRPAM
जो देता है:
- प्रगति : PGMG(4 चाल)
- PUZZLES : PS(2 चाल)
- और : AD(2 चाल)
- कोड : CE(2 चाल)
- GOLF : GF(2 चाल)
केवल 12 चालों की कुल के लिए ।
कीबोर्ड स्कोरिंग
कम, बेहतर।
चुनौती
- शब्दों की एक सूची को देखते हुए, आपका कोड एक मान्य आउटपुट होना चाहिए इस सूची के लिए कीबोर्ड का । यदि प्रत्येक शब्द एक अद्वितीय स्वाइप अनुक्रम उत्पन्न करता है, तो एक कीबोर्ड वैध माना जाता है।
आपको शब्दों की 11 स्वतंत्र सूचियाँ दी जाएंगी। आपका स्कोर इसके बराबर होगा:
आप अपने स्कोर की जांच करने के लिए इस स्क्रिप्ट का उपयोग कर सकते हैं ।
score()
समारोह पहले पैरामीटर और दूसरा पैरामीटर के रूप में 11 कुंजीपटल तार की एक सरणी (मामले फर्क नहीं पड़ता) के रूप में अपने कोड लंबाई की उम्मीद है।सबसे कम स्कोर के साथ सबमिशन जीत जाता है। एक टाई के मामले में, जो सबमिट किया गया था वह पहले जीत गया था।
अतिरिक्त नियम
- आपका कोड निर्धारक होना चाहिए (यानी किसी दिए गए इनपुट के लिए हमेशा वही आउटपुट लौटाया जाना चाहिए)।
- आपको या तो ए) एक परीक्षण लिंक प्रदान करना चाहिए (जैसे टीआईओ पर) जो समय समाप्त नहीं करता है, या बी) आपके उत्तर के शरीर के भीतर उत्पन्न कीबोर्ड शामिल करता है।
- आप शब्दों को पूर्ण अपरकेस या पूर्ण लोअरकेस में ले सकते हैं। मिश्रित मामलों की मनाही है।
- इनपुट में कम से कम एक समाधान होने की गारंटी है।
- सभी शब्द कम से कम 2 अलग-अलग अक्षरों से बने होते हैं।
- आपका कोड किसी भी मान्य इनपुट के लिए काम करना चाहिए। यह सुनिश्चित करने के लिए शब्दों की एक अज्ञात सूची के साथ परीक्षण किया जाएगा कि यह हार्ड-कोडित परिणामों पर निर्भर नहीं है।
- मैं किसी भी समय परीक्षण सूट के आकार को बढ़ाने का अधिकार सुरक्षित रखता हूं ताकि यह सुनिश्चित किया जा सके कि प्रस्तुतियाँ प्रारंभिक परीक्षण मामलों के लिए अनुकूलित नहीं हैं।
शब्द सूची
1) Sanity check #1 (only 4 valid solutions: HES, SEH, ESH or HSE)
SEE, SHE
2) Sanity check #2 (16 valid solutions, of which 4 are optimal: COLD, DOLC, DLOC or CLOD)
COLD, CLOD
3) Sanity check #3
ACCENTS, ACCESS
4) Warm-up
RATIO, NATION, NITRO, RIOT, IOTA, AIR, ART, RAT, TRIO, TRAIN
5) Pangram
THE, QUICK, BROWN, FOX, JUMPS, OVER, LAZY, DOG
6) Common prepositions
TO, OF, IN, FOR, ON, WITH, AT, BY, FROM, UP, ABOUT, INTO, OVER, AFTER
7) Common verbs
BE, HAVE, DO, SAY, GET, MAKE, GO, KNOW, TAKE, SEE, COME, THINK, LOOK, WANT, GIVE, USE, FIND, TELL, ASK, WORK, SEEM, FEEL, TRY, LEAVE, CALL
8) Common adjectives
GOOD, NEW, FIRST, LAST, LONG, GREAT, LITTLE, OWN, OTHER, OLD, RIGHT, BIG, HIGH, DIFFERENT, SMALL, LARGE, NEXT, EARLY, YOUNG, IMPORTANT, FEW, PUBLIC, BAD, SAME, ABLE
9) Common nouns
TIME, PERSON, YEAR, WAY, DAY, THING, MAN, WORLD, LIFE, HAND, PART, CHILD, EYE, WOMAN, PLACE, WORK, WEEK, CASE, POINT, GOVERNMENT, COMPANY, NUMBER, GROUP, PROBLEM, FACT
10) POTUS
ADAMS, ARTHUR, BUCHANAN, BUREN, BUSH, CARTER, CLEVELAND, CLINTON, COOLIDGE, EISENHOWER, FILLMORE, FORD, GARFIELD, GRANT, HARDING, HARRISON, HAYES, HOOVER, JACKSON, JEFFERSON, JOHNSON, KENNEDY, LINCOLN, MADISON, MCKINLEY, MONROE, NIXON, OBAMA, PIERCE, POLK, REAGAN, ROOSEVELT, TAFT, TAYLOR, TRUMAN, TRUMP, TYLER, WASHINGTON, WILSON
11) Transition metals
SCANDIUM, TITANIUM, VANADIUM, CHROMIUM, MANGANESE, IRON, COBALT, NICKEL, COPPER, ZINC, YTTRIUM, ZIRCONIUM, PLATINUM, GOLD, MERCURY, RUTHERFORDIUM, DUBNIUM, SEABORGIUM, BOHRIUM, HASSIUM, MEITNERIUM, UNUNBIUM, NIOBIUM, IRIDIUM, MOLYBDENUM, TECHNETIUM, RUTHENIUM, RHODIUM, PALLADIUM, SILVER, CADMIUM, HAFNIUM, TANTALUM, TUNGSTEN, RHENIUM, OSMIUM