आपका कार्य पुराने सेलफोन पर दिए गए पाठ को दर्ज करने के लिए आवश्यक की-प्रेस की कुल संख्या की गणना करना है।
कीमैप हैं:
1:1
2:abcABC2
3:defDEF3
4:ghiGHI4
5:jklJKL5
6:mnoMNO6
7:pqrsPQRS7
8:tuvTUV8
9:wxyzWXYZ9
0:<space><newline>0
टाइप करने के लिए exaMPle TExt 01, आप 33 99 2 6666 77777 555 33 0 8888 33333 99 8 0 <a 1-sec pause here in real life but we'll ignore it>000 1कुल 37 कुंजी के लिए प्रेस करेंगे ।
*कुंजी विशेष वर्ण का एक नक्शा को लाता है:
.,'?!
"-()@
/:_;+
&%*=<
>£€$¥
¤[]{}
\~^¡¿
§#|`
पहले एक ( .) पर प्रकाश डाला गया। आप आयताकार नेविगेशन कुंजियों का उपयोग करके आवश्यक चरित्र को उजागर करने के लिए आगे बढ़ सकते हैं और इसे चुनने के लिए एक और कुंजी लेता है।
इसलिए सम्मिलित करने के लिए $, आप *↓↓↓↓→→→<select>कुल 9 कुंजी दबाएंगे ।
- इनपुट
sourceआपके प्रोग्राम की वर्तमान निर्देशिका / डायरेक्टरी में रखी गई फ़ाइल से होगा । संपादित करें: टिप्पणियों में प्रति अनुरोध, मैं जोड़ रहा हूँSTDINएक वैध इनपुट विधि के रूप में । जवाब मिलने के बाद युक्ति बदलने के लिए क्षमा याचना। - आपको आउटपुट चाहिए
Total key presses <total_keypresses> - यदि इनपुट फ़ाइल में दिए गए कीमैप में कोई वर्ण नहीं है, तो आपके प्रोग्राम को आउटपुट
Invalid character <character> in sourceऔर बाहर निकलना चाहिए ।
संक्षेप में, आपके प्रोग्राम के इनपुट और आउटपुट को इस (ungolfed) अजगर स्क्रिप्ट से मिलता जुलता होना चाहिए:
# This Python file uses the following encoding: utf-8
from __future__ import print_function
import sys
general_dict = { '1':1,
'a':1, 'b':2, 'c':3, 'A':4, 'B':5, 'C':6, '2':7,
'd':1, 'e':2, 'f':3, 'D':4, 'E':5, 'F':6, '3':7,
'g':1, 'h':2, 'i':3, 'G':4, 'H':5, 'I':6, '4':7,
'j':1, 'k':2, 'l':3, 'J':4, 'K':5, 'L':6, '5':7,
'm':1, 'n':2, 'o':3, 'M':4, 'N':5, 'O':6, '6':7,
'p':1, 'q':2, 'r':3, 's':4, 'P':5, 'Q':6, 'R':7, 'S':8, '7':9,
't':1, 'u':2, 'v':3, 'T':4, 'U':5, 'V':6, '8':7,
'w':1, 'x':2, 'y':3, 'z':4, 'W':5, 'X':6, 'Y':7, 'Z':8, '9':9,
' ':1, '\n':2, '0':3
}
special_chars = ['.',',',"'",'?','!','"','-','(',')','@','/',':','_',';','+','&','%','*','=','<','>','£','€','$','¥','¤','[',']','{','}','\\','~','^','¡','¿','§','#','|','`']
for x in special_chars:
general_dict[x]=(special_chars.index(x)/5) + (special_chars.index(x)%5) + 2
key_press_total = 0
with open('source') as f: # or # with sys.stdin as f:
for line in f:
for character in line:
if character in general_dict:
key_press_total+=general_dict[character]
else:
print('Invalid character',character,'in source')
sys.exit(1)
print('Total key presses',key_press_total)
यह बाइट्स जीत में कोड-गोल्फ, सबसे छोटा कार्यक्रम है।
बेशर्म अस्वीकरण: मैंने इस चुनौती को उपरोक्त अजगर लिपि के विभिन्न भाषाओं में अनुवाद करने के लिए बनाया है जिसका उपयोग सैंडबॉक्स में इस चुनौती को स्कोर करने के लिए किया जाएगा ।
1ce5a2fdd0316e37c0a07d151d02db766a3adbb7।