एम | वाई बीआर | ऐन है हम | आईआरडी F (o) RT (h) E La | sT Fi (v) e YE | ars O | R | O;, (I) ha | ve C (u) T wO | rds in h (a) lf wh | En (I) s (e) e Th | em | Wh | EN मैंने शुरू किया Do | इसे ing, it To | oK a meN | TaL का प्रयास - B (u) TI लगभग cou (l) d't N (o) T d | o it | N (o) w, I d। O इसे मेरे सिर के पीछे, (n) d शायद ही विकसित होता है | en not | i-iC it। हालाँकि, मुझे लगा कि यह wo | uld एक बड़ी चुनौती है।
परिभाषाएं
इस चुनौती के लिए, प्रत्येक पत्र को एक अंक स्कोर दिया जाता है, जो कि एक सेन्स-सेरिफ़ फ़ॉन्ट में इसकी चौड़ाई के निर्णय पर आधारित होता है। आप इस चौड़ाई का उपयोग किसी शब्द को समान चौड़ाई के दो हिस्सों में काटने के लिए करेंगे। इस चुनौती का उपयोग करने वाले वर्ण कम और ऊपरी मामलों में वर्णमाला, एपोस्ट्रोफ, और हाइफ़न हैं।
Width Characters
1 i l I '
2 f j r t -
3 a b c d e g h k n o p q s u v x y z
4 m w A B C D E F G H J K L N O P Q R S T U V X Y Z
5 M W
मेरे स्पष्टीकरण और परीक्षण के मामलों के लिए, |
उस स्थान को निरूपित करता है जिसमें किसी शब्द को सफाई से आधे में विभाजित किया जा सकता है।(
और )
एक पत्र के दोनों ओर संकेत मिलता है कि एक साफ विभाजन बनाने के लिए उस पत्र को आधे में विभाजित किया जाएगा।
इनपुट
इनपुट में एक एकल "शब्द" होगा (जो कि शब्दकोश में होना आवश्यक नहीं है)। आप इस शब्द को उस टेक्स्ट इनपुट में ले सकते हैं जो आपको पसंद आएगा (स्ट्रिंग, चार सरणी, आदि)। इस शब्द में केवल अक्षर होंगे '
, और -
(तालिका के ऊपर देखें)। इस शब्द के साथ आप क्या करेंगे (नीचे देखें) के कारण, इनपुट का मामला डेवलपर के विवेक पर छोड़ दिया जाता है। यदि आवश्यक हो तो अनुगामी नईलाइन्स की अनुमति दी गई है।
काम
इनपुट के सभी रूपों (सभी संभव ऊपरी या निचले मामले के पदों पर सभी पत्र) के माध्यम से क्रमांकित करें। उदाहरण के लिए, इनपुट के लिए, it's
नीचे सभी क्रमपरिवर्तन हैं:
it's
it'S
iT's
iT'S
It's
It'S
IT's
IT'S
किसी शब्द के क्रमांकन को आधे हिस्से में विभाजित करने के लिए, शब्द के एक तरफ के अंक शब्द के दूसरे पक्ष के बिंदुओं के समान होने चाहिए। हालाँकि, यदि कोई पत्र दो खंडों के बीच में अटक जाता है, तो आप एक पत्र को आधे में भी सफाई से काट सकते हैं।
कृपया ध्यान दें कि "आधा" का मतलब यह नहीं है कि आप स्ट्रिंग में आधे रास्ते पर चले गए हैं। "आधा" का अर्थ है कि दोनों तरफ के बिंदु समान हैं।
उदाहरण:
W
5 अंक है। i
1 अंक है। Wiiiii
आधे में क्रमिक बंटवारे के परिणामस्वरूप W | iiiii
, प्रत्येक पक्ष पर 5 अंक होंगे |
।
T
3 अंक है। TTTT
आधे में क्रमिक बंटवारे के परिणामस्वरूप TT | TT
, प्रत्येक पक्ष पर 6 अंक होंगे|
।
w
4 अंक है। ए 3 अंक है। waw
आधे हिस्से में क्रमचय को विभाजित करने के परिणामस्वरूप w (a) w
प्रत्येक पक्ष पर 5.5 अंक होंगे। a
दोनों तरफ से अंक वितरित किए गए हैं, जैसा a
कि आधे हिस्से में विभाजित है।
उत्पादन
आपका आउटपुट इनपुट के अनूठे क्रमपरिवर्तन की संख्या का पूर्णांक है, जिसे सफाई से आधे में विभाजित किया जा सकता है। यदि आवश्यक हो तो अनुगामी नईलाइन्स की अनुमति दी गई है।
परीक्षण के मामलों
मैं परीक्षण मामलों के लिए इनपुट के सभी वैध क्रमांकन का उत्पादन करूंगा। याद रखें कि यह आपके लिए चश्मे का हिस्सा नहीं है।
मेरे मध्यवर्ती आउटपुट में, संख्याएं उनके ऊपर के अक्षर का बिंदु मान दर्शाती हैं, इसलिए आउटपुट कल्पना करना थोड़ा आसान है।
Input: a
( a )
3
( A )
4
Output: 2
Input: in
Output: 0
Input: ab
A | B
4 4
a | b
3 3
Output: 2
Input: abc
A ( B ) C
4 4 4
A ( b ) C
4 3 4
a ( B ) c
3 4 3
a ( b ) c
3 3 3
Output: 4
Input: will
W ( I ) L l
5 1 4 1
W ( I ) l L
5 1 1 4
W ( i ) L l
5 1 4 1
W ( i ) l L
5 1 1 4
w I | L l
4 1 4 1
w I | l L
4 1 1 4
w i | L l
4 1 4 1
w i | l L
4 1 1 4
Output: 8
Input: stephen
S T E ( P ) H E N
4 4 4 4 4 4 4
S T E ( p ) H E N
4 4 4 3 4 4 4
S T E | p h e n
4 4 4 3 3 3 3
S T e ( P ) H E n
4 4 3 4 4 4 3
S T e ( P ) H e N
4 4 3 4 4 3 4
S T e ( P ) h E N
4 4 3 4 3 4 4
S T e ( p ) H E n
4 4 3 3 4 4 3
S T e ( p ) H e N
4 4 3 3 4 3 4
S T e ( p ) h E N
4 4 3 3 3 4 4
S t E ( P ) H e n
4 2 4 4 4 3 3
S t E ( P ) h E n
4 2 4 4 3 4 3
S t E ( P ) h e N
4 2 4 4 3 3 4
S t E ( p ) H e n
4 2 4 3 4 3 3
S t E ( p ) h E n
4 2 4 3 3 4 3
S t E ( p ) h e N
4 2 4 3 3 3 4
S t e ( P ) h e n
4 2 3 4 3 3 3
S t e p | H E N
4 2 3 3 4 4 4
S t e ( p ) h e n
4 2 3 3 3 3 3
s T E ( P ) H E n
3 4 4 4 4 4 3
s T E ( P ) H e N
3 4 4 4 4 3 4
s T E ( P ) h E N
3 4 4 4 3 4 4
s T E ( p ) H E n
3 4 4 3 4 4 3
s T E ( p ) H e N
3 4 4 3 4 3 4
s T E ( p ) h E N
3 4 4 3 3 4 4
s T e ( P ) H e n
3 4 3 4 4 3 3
s T e ( P ) h E n
3 4 3 4 3 4 3
s T e ( P ) h e N
3 4 3 4 3 3 4
s T e ( p ) H e n
3 4 3 3 4 3 3
s T e ( p ) h E n
3 4 3 3 3 4 3
s T e ( p ) h e N
3 4 3 3 3 3 4
s t E ( P ) h e n
3 2 4 4 3 3 3
s t E p | H E N
3 2 4 3 4 4 4
s t E ( p ) h e n
3 2 4 3 3 3 3
s t e P | H E N
3 2 3 4 4 4 4
s t e p | H E n
3 2 3 3 4 4 3
s t e p | H e N
3 2 3 3 4 3 4
s t e p | h E N
3 2 3 3 3 4 4
Output: 37
Input: splitwords
S P L I T | W O r d s
4 4 4 1 4 5 4 2 3 3
<snip>
s p l i t w | o R d S
3 3 1 1 2 4 3 4 3 4
Output: 228
Input: 'a-r
' a ( - ) R
1 3 2 4
' a | - r
1 3 2 2
Output: 2
Input: '''''-
' ' ' ( ' ) ' -
1 1 1 1 1 2
Output: 1
विजय
यह कोड-गोल्फ है , इसलिए बाइट्स जीत में सबसे छोटा जवाब है। आप उचित समय में सभी परीक्षण मामलों (इसलिए, 10 वर्णों तक के सभी इनपुट) को आउटपुट करने में सक्षम होना चाहिए। कृत्रिम रूप से अपने इनपुट को कैप न करें।
इनाम
मुझे नहीं पता कि यह संभावना के दायरे में है या नहीं। हालाँकि, आप गोल्फर हैं - आप प्रतिनिधि के लिए कुछ भी करेंगे। मैं एक 200 प्रतिनिधि इनाम की पेशकश कर रहा हूं (एक बार यह इनाम शर्त पूरी हो जाने के बाद मैं इसे शुरू करूंगा, क्योंकि यह मेरे लिए मूल रूप से असंभव लगता है) एक प्रोग्राम के लिए antidisestablishmentarianism
जो औसत कंप्यूटर (उर्फ मेरा) पर 15 सेकंड के लिए सही आउटपुट देता है। कृपया ध्यान दें कि इस परीक्षण मामले को किसी भी तरह से कठोर नहीं बनाया जाना चाहिए।
@DigitalTrauma ने मेरे इनाम को कुचल दिया, दो सेकंड के भीतर अच्छी तरह से आ रहा है। उसका उत्तर यहां देखें ।
antidisestablishmentarianism
(गैर-गोल्फरी) के लिए मेरी पहली गिनती 83307040
(और सभी परीक्षण मामलों से मेल खाती है) है, लेकिन मेरे लैपटॉप पर ~ 37 सेकंड लगते हैं (आपको लगता है कि यह पायथन है)। किसी को भी इसके लिए एक गिनती है?