हम सभी जानते हैं कि प्रोग्रामर आलसी होते हैं। अपने खाली समय को अधिकतम करने के लिए, आप एक ऐसे प्रोग्राम को लिखने का निर्णय लेते हैं, जो इसमें दिए गए पाठ के लिए न्यूनतम संख्या में कीस्ट्रोक्स को आउटपुट करता है।
इनपुट : टेक्स्ट जिसे किस्ट्रोक्स में बदलना है। आप पाठ (इनपुट में दिए गए फ़ाइल से STDIN / रीडिंग) का इनपुट कैसे तय कर सकते हैं
आउटपुट : निम्नलिखित प्रारूप में आवश्यक कार्य:
- उनकी संख्या होनी चाहिए
H
यह: एक कुंजी दबाने और तुरंत इसे जारी करनाP
ress: किसी कुंजी को दबाना और उसे जारी नहीं करना (यह तब कभी इष्टतम नहीं होगा जब कुंजीR
अगले कीस्ट्रोक के रूप में समाप्त हो जाए)R
elease: एकP
कुंजी को जारी करना
उदाहरण :
इनपुट:
Hello!
आउटपुट:
एक भोला समाधान होगा:
1 P Shift
2 H h
3 R Shift
4 H e
5 H l
6 H l
7 H o
8 P Shift
9 H 1
10 R Shift
यह अधिक कुशल होगा:
1 P Shift
2 H h
3 H 1
4 R Shift
5 H Left
6 H e
7 H l
8 H l
9 H o
वातावरण:
- संपादक एक मोनोस्पॉन्टेड फ़ॉन्ट का उपयोग करता है
- पाठ को 80 वर्णों पर लपेटा जाता है
- ऊपर तीर और नीचे तीर सुरक्षित करें, भले ही बीच में छोटी रेखाएं हों
- क्लिपबोर्ड को खाली माना जाता है
- अंक लॉक सक्षम होना माना जाता है
- कैप्स लॉक को अक्षम माना जाता है
- कैप्स लॉक केवल अक्षरों के लिए काम करता है (यानी कोई शिफ्ट लॉक नहीं)
हॉटकी / शॉर्टकट :
- Home: वर्तमान लाइन की शुरुआत के लिए कूदो
- End: वर्तमान लाइन के अंत में कूदें
- Ctrl+ A: सब कुछ चिह्नित करें
- Ctrl+ C: कॉपी करें
- Ctrl+ X: कट
- Ctrl+ V: पेस्ट करें
- Shift+ कर्सर ले जाना: चिह्नित करना
- Ctrl+ F: एक खोज संवाद खोलता है।
- स्थिर पाठ मिलान, कोई नियमित अभिव्यक्तियाँ नहीं
- अक्षर संवेदनशील
- चारों ओर खोजें लपेटती हैं
- खोज के लिए सिंगल लाइन टेक्स्ट इनपुट
- इनपुट को वर्तमान चयन के साथ प्रीफ़िल्ड किया जाता है, जब तक कि बीच में कोई नईलाइन न हो, पूरा इनपुट चुना जाता है
- कॉपी / पेस्ट करना हमेशा की तरह काम करता है
- दबाने Enterप्रदर्शन खोज, वर्तमान कर्सर स्थिति के बाद पहला मैच का चयन
- F3: अंतिम खोज दोहराएं
- Ctrl+ H: एक प्रतिस्थापित संवाद खोलता है
- स्थिर पाठ मिलान, कोई नियमित अभिव्यक्तियाँ नहीं
- अक्षर संवेदनशील
- चारों ओर लपेट के साथ, सभी बदलें
- एकल पंक्ति पाठ इनपुट
- वर्तमान चयन के साथ खोज इनपुट पूर्वनिर्धारित है, जब तक कि बीच में कोई नई रेखा न हो, पूरा इनपुट चुना जाता है
- प्रतिस्थापित इनपुट खाली है
- कॉपी / पेस्ट करना हमेशा की तरह काम करता है
- Tab बदलें इनपुट के लिए कूदता है
- दबाने से Enterसब बदल जाता है। कर्सर को अंतिम प्रतिस्थापन के बाद रखा जाता है
नियम :
- समाधान एक पूर्ण कार्यक्रम होना चाहिए जो कि आगे / संशोधन को संकलित / क्रियान्वित करता है
- ऊपर प्रदर्शित कीबोर्ड उपयोग करने के लिए कीबोर्ड है
- यह उन वर्णों को संभालने के लिए आवश्यक नहीं है जिन्हें इसके साथ टाइप नहीं किया जा सकता है
- हर कुंजी को अंत में जारी किया जाना चाहिए
- कर्सर को फ़ाइल के अंत में अंत में होने की आवश्यकता नहीं है
स्कोरिंग :
आपका स्कोर निम्नलिखित ग्रंथों को टाइप करने के लिए आवश्यक क्रियाओं की राशि है। विजेता सबसे कम अंक वाला हल है। मेरे भोले समाधान का उपयोग करके मुझे मिलता है 1371 + 833 + 2006 = 4210
। इसे हरायें! मैं दो सप्ताह में एक विजेता चुनूंगा।
1 मेरा भोला समाधान
number = 1
H = (char) -> console.log "#{number++} H #{char}"
P = (char) -> console.log "#{number++} P #{char}"
R = (char) -> console.log "#{number++} R #{char}"
strokes = (text) ->
shiftActive = no
for char in text
if /^[a-z]$/.test char
if shiftActive
R "Shift"
shiftActive = no
H char
else if /^[A-Z]$/.test char
unless shiftActive
P "Shift"
shiftActive = yes
H char.toLowerCase()
else
table =
'~': '`'
'!': 1
'@': 2
'#': 3
'$': 4
'%': 5
'^': 6
'&': 7
'*': 8
'(': 9
')': 0
'_': '-'
'+': '='
'|': '\\'
'<': ','
'>': '.'
'?': '/'
':': ';'
'"': "'"
'{': '['
'}': ']'
if table[char]?
unless shiftActive
P "Shift"
shiftActive = yes
H table[char]
else
H switch char
when " " then "Space"
when "\n" then "Enter"
when "\t" then "Tab"
else
if shiftActive
R "Shift"
shiftActive = no
char
R "Shift" if shiftActive
input = ""
process.stdin.on 'data', (chunk) -> input += chunk
process.stdin.on 'end', -> strokes input
2 आसान पुनरावृत्ति
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB
CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD
EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG
HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH
IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII
JJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ
KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKK
LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
3 अधिक जटिल पुनरावृत्ति
We're no strangers to love
You know the rules and so do I
A full commitment's what I'm thinking of
You wouldn't get this from any other guy
I just wanna tell you how I'm feeling
Gotta make you understand
Never gonna give you up
Never gonna let you down
Never gonna run around and desert you
Never gonna make you cry
Never gonna say goodbye
Never gonna tell a lie and hurt you
We've known each other for so long
Your heart's been aching but
You're too shy to say it
Inside we both know what's been going on
We know the game and we're gonna play it
And if you ask me how I'm feeling
Don't tell me you're too blind to see
Never gonna give you up
Never gonna let you down
Never gonna run around and desert you
Never gonna make you cry
Never gonna say goodbye
Never gonna tell a lie and hurt you
Never gonna give you up
Never gonna let you down
Never gonna run around and desert you
Never gonna make you cry
Never gonna say goodbye
Never gonna tell a lie and hurt you
(Ooh, give you up)
(Ooh, give you up)
(Ooh)
Never gonna give, never gonna give
(Give you up)
(Ooh)
Never gonna give, never gonna give
(Give you up)
We've know each other for so long
Your heart's been aching but
You're too shy to say it
Inside we both know what's been going on
We know the game and we're gonna play it
I just wanna tell you how I'm feeling
Gotta make you understand
Never gonna give you up
Never gonna let you down
Never gonna run around and desert you
Never gonna make you cry
Never gonna say goodbye
Never gonna tell a lie and hurt you
Never gonna give you up
Never gonna let you down
Never gonna run around and desert you
Never gonna make you cry
Never gonna say goodbye
Never gonna tell a lie and hurt you
Never gonna give you up
Never gonna let you down
Never gonna run around and desert you
Never gonna make you cry
Never gonna say goodbye
Never gonna tell a lie and hurt you
आप अपने समाधानों का परीक्षण करने के लिए मेरे द्वारा लिखे गए रिप्ले कार्यक्रम का उपयोग कर सकते हैं (ध्यान दें: यह अभी तक खोज / प्रतिस्थापन का समर्थन नहीं करता है, बाकी सब काम करेंगे)।