इनिंग क्या है?


15

लक्ष्य

वर्ल्ड सीरीज़ के कोने-कोने में होने के कारण, मुझे एक ऐसे कार्यक्रम की ज़रूरत है, जो बॉक्स स्कोर को पढ़ सके और मुझे बता सके कि यह इनिंग क्या है। यह थोड़ा जटिल है क्योंकि बेसबॉल स्कोर रिकॉर्ड करने के लिए एक अजीब विधि का उपयोग करता है। उन्होंने जब तक एक रन नहीं बनाया है, तब तक पारी के लिए टीम के स्कोर को नीचे नहीं लिखते हैं (और अभी भी जा रहे हैं) या अपने बल्ले को समाप्त कर चुके हैं। इस प्रकार स्कोरबोर्ड पर एक 0 का मतलब हमेशा समाप्त बैट होता है। उदाहरण के लिए:

Example A:
Inning| 1| 2| 3| 4| 5| 6| 7| 8| 9|
  Them| 0| 0| 0| 0| 0| 2|  |  |  |
    Us| 0| 0| 2| 0| 0| 0|  |  |  |

Example B:
Inning| 1| 2| 3| 4| 5| 6| 7| 8| 9|
  Them| 0| 0| 0| 0| 0| 2|  |  |  |
    Us| 0| 0| 2| 0| 0| 1|  |  |  |

Example C:
Inning| 1| 2| 3| 4| 5| 6| 7| 8| 9|
  Them| 0| 0| 0| 0| 0| 2|  |  |  |
    Us| 0| 0| 2| 0| 0|  |  |  |  |

#Them is the Away Team, Us is the Home Team (who are the guys you root for)
  • उदाहरण A: हम जानते हैं कि हम 7 वें के शीर्ष पर हैं क्योंकि हमारे पास 6 के निचले भाग में 0 दर्ज है और 7 वें का शीर्ष रिक्त है।
  • उदाहरण बी: यह या तो 6 के नीचे या 7 वें के शीर्ष पर हो सकता है।
  • उदाहरण C: यह या तो 6 के ऊपर या नीचे हो सकता है।

आपका कार्य यह है कि किस पारी (इनिंग) को वापस करना है।

इनपुट

गैर-नकारात्मक पूर्णांक की दो सूची। होम टीम की तुलना में लिस्ट को अवे टीम की सूची के साथ या तो एक ही आकार या एक तत्व से बड़ा माना जाएगा। यदि आप डिफॉल्ट का उपयोग नहीं करते हैं तो आप अपने उत्तर में स्कोर ले सकते हैं लेकिन अपने उत्तर में बता सकते हैं। यानी, दूर की टीम तब होम टीम (डिफ़ॉल्ट), या होम टीम फिर दूर टीम (उलट)। यदि आप ऐसा चाहते हैं, तो वे आपके जवाब में बताए गए डमी डेटा के साथ गद्देदार हो सकते हैं।

उत्पादन

एक स्ट्रिंग या कुछ समतुल्य जो पहचान संख्या की पहचान करता है और चाहे वह ऊपर या नीचे हो। उदाहरण के लिए 7B 8T, B7 T8, ['7B','8T']सब ठीक कर रहे हैं। यदि दो उत्तर हैं, तो आपको दोनों का ही उत्पादन करना होगा। हालांकि प्रारूप बहुत लचीला है।

नियम

  • इनपुट हमेशा मान्य होगा
  • खेल अनिश्चितकालीन अतिरिक्त पारी में जा सकते हैं। आपका कार्यक्रम 255 पारियों तक समर्थन करने में सक्षम होना चाहिए।
  • मानक ढीले निषिद्ध हैं
  • यह इसलिए सबसे छोटा कोड जीतता है

परीक्षण के मामलों

#Input:
[[], 
 []] 
#Output: 1T

#Input:
[[0], 
 []] 
#Output: 1B

#Input:
[[0,0,0,1], 
 [0,0,0,0]] 
#Output: 5T

#Input:
[[0,0,0,1], 
 [0,0,0,1]] 
#Output: 4B, 5T

#Input:
[[0,0,0,1,0,0,1,0,0,1],
 [0,0,0,0,1,0,0,1,0,1]] 
#Output: 10B, 11T

#Input:
[[0,0,0,1], 
 [0,0,0]] 
#Output: 4T, 4B

#Input:
[[0,0,0,0], 
 [0,0,0]] 
#Output: 4B

क्या हम दो सूचियों को रिवर्स ऑर्डर में ले सकते हैं? नीचे तो ऊपर?
जो राजा

@JoKing ज़रूर, जब तक यह नोट किया गया है और जवाब अभी भी सही ढंग से मेल खाता है।
विस्काह

क्या सकारात्मक / नकारात्मक पूर्णांक रिटर्न वैल्यू स्वीकार्य आउटपुट है?

@Rogem इसे थोड़ा आगे बढ़ाया जा रहा है, लेकिन अपने लेखन को पढ़कर, यह ठीक है। मैंने कहा कि आउटपुट काफी लचीला है।
विस्कह

जवाबों:


4

सी (जीसीसी) , 50 बाइट्स

एक इंटरलेईड लिस्ट (यानी {them#1, us#1, them#2,...}) के लिए एक पॉइंटर के रूप में इनपुट लेता है ।

संशोधन के माध्यम से एक विकल्प लौटाता है, और दूसरा वापसी मूल्य के माध्यम से।

नकारात्मक मान पारी के नीचे इंगित करते हैं, सकारात्मक मूल्य पारी के ऊपर इंगित करते हैं। शून्य "खाली" हैं। आउटपुट का पूर्ण मूल्य इनिंग की संख्या है। तो, -4,5पांचवें के ऊपर और नीचे की 1,0संभावनाओं को इंगित करता है , और केवल पहली के शीर्ष होने की एकमात्र संभावना को इंगित करता है।

मैक्रो का रिटर्न मूल्य यह निर्धारित करने के लिए इस्तेमाल किया जा सकता है कि क्या एक या दो संभावित पारी है; 0यदि कोई अन्य पारी नहीं है, तो वापसी मूल्य । अन्यथा, यह पारी की संख्या है।

स्रोत कोड के शून्य बाइट्स। प्रीप्रोसेसर ध्वज के रूप में निम्नलिखित का उपयोग करें:

-Df(o,n,l)=({o=n%2?~n/2:n/2+1;l[n-1]?-o-~n%2:0;})

इसे ऑनलाइन आज़माएं!

Degolf

-Df(o,n,l)=({
// Define a function-like macro f(o,n,l)
// o is the output variable, n is the size of the list, 
// l is a pointer to the first element of the list.
o=n%2?~n/2:n/2+1;
// If there's an odd number of elements, first possible inning is -(n+1)/2. 
// Else, it is (n/2)+1.
l[n-1]?-o-~n%2:0})
// If the score from the last inning is non-zero, the other possible inning
// needs to be determined; flip the sign of first output value then deduct 
// 1 from it if the number of elements is even.

इसके अलावा, यह एक अतिरिक्त 4 बाइट्स हो सकता है अगर मैं सूची को रिवर्स ऑर्डर (अंतिम से पहली), या सूचक को सरणी में अंतिम तत्व को इंगित करने के लिए मान सकता हूं। उस के लिए जाना नहीं था, क्योंकि यह बहुत धोखा की तरह महसूस किया।

मैं @veskah से सुनना पसंद करूंगा यदि आपने इनपुट किया तो ठीक है, क्योंकि यह मूल कल्पना से काफी अलग (और उपयोगी) लगता है।
BLT

2
@ बीएलटी सम्मेलन द्वारा, इंटरलेविंग यह है कि सूचियों की सूची सी में कैसे की जाती है; संसाधनों पर बहुत सारे डीफ्रेंसिंग बहुत कर हैं। अन्य विकल्प के लिए एक के बाद एक सूची होगी, लेकिन फिर नए तत्वों को जोड़ना बहुत ही अव्यवहारिक होगा।

3

पर्ल 6 , 52 48 45 बाइट्स

-3 बाइट्स nwellnhof से कुछ पुनर्गठन के लिए धन्यवाद!

->\a,\b{(+a,a==b if (b,a)[a>b].tail;b+1,a>b)}

इसे ऑनलाइन आज़माएं!

अनाम कोड ब्लॉक जो इनपुट को दो सूचियों के रूप में लेता है, शीर्ष और फिर नीचे। आउटपुट ट्यूपल्स की एक सूची है, जहां पहला तत्व इनिंग नंबर है और दूसरा तत्व ट्रू या गलत है, जो बॉटम या टॉप के अनुरूप है।

स्पष्टीकरण:

       {                                    }  # Anonymous code block
->\a,\b   # That takes input lists a and b
        (                                  )   # Return a list of
                                    b+1,a>b    # A list of 
                                               #  The length of the second list plus 1
                                               #  And top/bottom
         +a,a==b     # And the length of the first list
                     # And the other of top/bottom
                 if  # Only if:
                    (b,a)[a>b]      # The current of top/bottom's
                              .tail # Last element exists and is not 0

3

आर , 103 96 बाइट्स

function(a,b,l=sum(a|1),k=sum(b|1))I(l,I(l-k,I(a[l],c(l,-l),-l),I(b[l],c(-l,l+1),l+1)),1)
I=`if`

इसे ऑनलाइन आज़माएं!

@digEmAll ने बचाए 7 बाइट!

इनपुट के रूप में दो सूचियों वैक्टर लेता है , और संभावित पारी का प्रतिनिधित्व करने वाले एक या दो पूर्णांकों को आउटपुट करता है। पॉजिटिव पूर्णांक इनिंग के शीर्ष हैं, और निगेटिव पूर्णांक इनिंग के नीचे हैं।

आर में, सकारात्मक पूर्णांक सत्य हैं, इसलिए मैं पहले तर्क के रूप में लंबाई में अंतर का उपयोग कर सकता हूं if()


जब से आप अपने कोड में उपयोग करते हैं , तो प्रतिस्थापन के [[रूप में आपके पास बेहतर भाग्य शायद होगा । if[
ग्यूसेप

@Giuseppe मैंने इसके साथ प्रयास किया <और ^। मुझे लगता है कि मैं [जिस उदाहरण को याद कर रहा था, उसमें उसका इस्तेमाल किया गया था।
बीएलटी

आप एक और नाम भी दे सकते हैं 'if'(और निकाल सकते हैं {}और f=बाहर ले जा सकते हैं ): 96 बाइट्स
digEmAll


2

जेली , 11 बाइट्स

ZẎṖṠṪ$СẈd2

इसे ऑनलाइन आज़माएं!

पहला तत्व: 0-आधारित स्तंभ का सूचकांक।
दूसरा तत्व: 0ऊपर के लिए, 1नीचे के लिए।

आउटपुट एक या दो जोड़े की सूची है जैसा कि ऊपर निर्दिष्ट किया गया है (इसे बेहतर दिखाने के लिए पूर्वनिर्धारित)। आउटपुट पारी रिवर्स ऑर्डर में है।


2

अजगर 2 , 135 129 126 125 123 119 बाइट्स

a,b=input()
c=len(a)
e,f=`c+1`+"T",`c`+"B"
print((f+e,e)[b[-1]<1],(`c`+"T"+f,f)[a[-1]<1])[len(b)<c]if b else"1"+"TB"[c]

इसे ऑनलाइन आज़माएं!

-1 @ धन्यवाद के साथ

-4 @ovs को फिर से धन्यवाद


if d else"11BT"[c<1::2]-3 के लिए
ओवंस

if dमैं देख सकता हूं (मुझे याद नहीं करना चाहिए!) लेकिन else"11BT"[c<1::2]मेरे लिए कोई छोटा नहीं आया जब तक कि मुझे कुछ याद न हो।
एलपीड्रो

कोई चिंता नहीं @ovs के रूप में मैं अपने रास्ते से प्रेरित एक और रास्ता मिल गया if d
एलपेड्रो

इसके बजाय if dआप कर सकते हैं if b, तो आपको len(b)चर में संग्रहीत करने की आवश्यकता नहीं है ।
ओवंस

@ मैं उस पर देखा, लेकिन इसके dलिए भी जरूरत है [d<c]। एक तरह से गोल नहीं देख सकता। कोई विचार?
एलपेड्रो

1

पायथन 2 , 65 बाइट्स

a,b=input()
exec"a,b=[0]+b,a;print[len(b)][a[-1]<len(a+b)%2:];"*2

इसे ऑनलाइन आज़माएं!

दो पंक्तियों को प्रिंट करता है, पहले तल की इनिंग की संभावना और फिर एक एकल सूची के रूप में सबसे ऊपर। यदि दोनों में से कोई भी संभव नहीं है, तो वह सूची खाली है।


1

क्लीन , 84 75 बाइट्स

import StdEnv
$ =length
?v|last[0:v]>0= $v=0
@a b| $b< $a=(?a,$a)=($a+1,?b)

इसे ऑनलाइन आज़माएं!

फ़ंक्शन @ :: [Int] [Int] -> (Int, Int)और कुछ सहायकों को परिभाषित करता है ।
उस रूप में आउटपुट देता है (Top, Bottom)जहां शून्य शून्य संभावना को दर्शाता है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.