एक स्टेम और पत्ती की साजिश बनाएँ


14

संबंधित: एक स्टेम और पत्ती की साजिश को वैधता दें

इनपुट

सकारात्मक पूर्णांक की एक गैर-रिक्त सूची। जरूरत पड़ने पर उन्हें तार के रूप में लिया जा सकता है। आप यह नहीं मान सकते हैं कि यह क्रमबद्ध है।

उत्पादन

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

आप उन सभी खाली तनों को शामिल कर सकते हैं या बाहर कर सकते हैं जो गैर-खाली तने के बीच हैं।

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

(सूचियों को आपकी भाषा की सूची में डिफ़ॉल्ट रूप से लिया जा सकता है, मैंने नीचे JSON का उपयोग किया है)

खाली तने सहित:

[1, 2, 3, 3, 3, 3, 3, 10, 15, 15, 18, 1, 100]

0 11233333
1 0558
2
3
4
5
6
7
8
9
10 0

[55, 59, 49, 43, 58, 59, 54, 44, 49, 51, 44, 40, 50, 59, 59, 59]

4 034499
5 0145899999

[10000, 10100]

1000 0
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010 0

खाली तने को छोड़कर:

[1, 2, 3, 3, 3, 3, 3, 10, 15, 15, 18, 1, 100]

0 11233333
1 0558
10 0

[55, 59, 49, 43, 58, 59, 54, 44, 49, 51, 44, 40, 50, 59, 59, 59]

4 034499
5 0145899999

[10000, 10100]

1000 0
1010 0


इसे क्रमबद्ध करने और / या इनपुट आदेश को संरक्षित करने की आवश्यकता है?
रॉड

@ रूट द्वारा, यह दसियों से इनपुट को छांटता है, फिर लोगों द्वारा। इनपुट ऑर्डर से कोई फर्क नहीं पड़ता।
स्टीफन

2
आउटपुट स्वरूप अवश्य होना चाहिए? क्या मेरा उत्तर मान्य है?
रॉड

1
@totallyhuman टुपल्स ठीक हैं, लेकिन हां, पत्तियों को छांटने की जरूरत है, यह कथानक का पूरा बिंदु है, पैटर्न और वितरण की कल्पना करने के लिए
स्टीफन

जवाबों:


2

आर , 12 बाइट्स

stem(scan())

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

स्पष्टीकरण:

s               # imports RAND's "Million Random Digits"
  e  )          # cooks a pound of spaghetti and places it on the stack
 t              # transposes the output 42 times
       can      # goes for a pee
   m(           # grows moustache, turns head to side and frowns
      s   (     # implicitly ignores all criticism
           )    # makes a stemplot of the input

मुझे लगता है कि stemयह पर्याप्त होगा, क्योंकि यह इनपुट के रूप में एक सरणी लेता है।
ग्यूसेप

यह एकमात्र तरीका था जिससे मुझे वास्तव में TIO पर काम करने के लिए एक उदाहरण मिल सकता था। और मुझे लगता है कि मैं उत्तर देने की "कार्यक्रम या कार्य" शैली के लिए उपयोग किया जाता हूं, और अन्य प्रारूपों के बारे में अनिश्चित हूं।
एन जी एम


@Giuseppe से सहमत, उत्तर बस stem:) होना चाहिए
JayCe



3

रेटिना , 38 30 बाइट्स

2 बाइट बचाने के लिए नील और दूसरे 6 को बचाने के लिए लियो को धन्यवाद।

बाइट गिनती आईएसओ 8859-1 एन्कोडिंग मानती है।

O#`
.\b
 $&
\B 
0 
D$`¶?.+ 
$*

इनपुट पूर्णांक-पृथक पूर्णांक की सूची है। आउटपुट खाली उपसर्गों को छोड़ देता है।

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


(?<=(\b.+ ).)¶\1आपको दो बाइट्स बचाता है।
नील

बाइट्स को अंतिम चरण के रूप में एक प्रतिस्थापन के बजाय डिडुप्लीकेशन चरण का उपयोग करके बचाया जा सकता है (आपको तब पहली पंक्ति से निपटना होगा) tio.run/##K0otycxL/…
सिंह

@ धन्यवाद, मैं एक मामूली संस्करण के साथ जा रहा हूं जो एक प्रमुख लाइनफीड के साथ समाप्त नहीं होता है।
मार्टिन एंडर

2

जावास्क्रिप्ट (ईएस 6), 89 बाइट्स

a=>a.sort((a,b)=>a-b).map(e=>r[d=e/10|0]=(r[d]||d+` `)+e%10,r=[])&&r.filter(e=>e).join`
`

2

अजगर 2 , 146 140 133 124 120 118 109 107 90 86 84 91 82 81 70 63 बाइट्स

-6 बाइट्स रॉड के लिए धन्यवाद। -9 बाइट्स ओव्स के लिए धन्यवाद।

lambda l:{i/10:[j%10for j in sorted(l)if j/10==i/10]for i in l}

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

ठीक है, कुछ थोड़ा विस्की है। जैसा कि सभी पायथन प्रोग्रामर को पता होना चाहिए, डिकट्स अनियंत्रित हैं, जिसका अर्थ है कि कुंजी-मूल्य जोड़े का मूल क्रम संरक्षित नहीं है। हालांकि, मेरे वर्तमान कोड में, मैं परिणामी हुक्म को बिल्कुल भी नहीं छाँटता। फिर भी, मैंने कई बार परीक्षण किया है, हर एक समय में समानता और व्यवस्था के लिए जाँच की है, और तानाशाह हमेशा सही निकलता है। अगर किसी को भी नापसंद है कि यह हमेशा सही निकलता है या जानता है कि यह काम क्यों करता है, तो मुझे जानना अच्छा लगेगा।

एक अजगर की सूची के रूप में इनपुट और एक तानाशाह के रूप में आउटपुट। उदाहरण:

इनपुट:

[1, 2, 3, 3, 3, 3, 3, 10, 15, 15, 18, 1, 100]

आउटपुट:

{0: [1, 1, 2, 3, 3, 3, 3, 3], 1: [0, 5, 5, 8], 10: [0]}


1
r[i/10]=r.get(i/10,'')+`i%10`82 बाइट्स के लिए
अंडा

मुझे लगता है कि डिफॉल्ट को डिफ़ॉल्ट रूप से सॉर्ट किया जाता है? बस मूल क्रम में नहीं
विनाशकारी नींबू

1

गणितज्ञ, 103 बाइट्स

@ User202729 के हटाए गए उत्तर से लिया गया कोड

Grid[Table[{Keys[#][[i]],""<>ToString/@#[[i]]},{i,Length@#}]]&@(GroupBy[Sort@#,⌊#/10⌋&]~Mod~10&@#)&

1

> <> , 84 बाइट्स

1&0\n~a7+3.
 :}<$?)@:$@:v!?
r~&^?-l&:+1&/&:,a-%a::
&=?v~&1+:&ao>n" "o:?!;::a%:@-a,&:

इसे ऑनलाइन या मछली के खेल के मैदान में आज़माएं !

मान लें कि इनपुट नंबर पहले से ही स्टैक पर हैं

स्पष्टीकरण: सबसे पहले, हम इस तरह के कोड के साथ एक बबल सॉर्ट का उपयोग करके स्टैक को सॉर्ट करते हैं :

1&0\
 :}<$?)@:$@:v!?
   ^?-l&:+1&/

अगला, हम स्टैक में पहली चीज़ के पूर्णांक-भागफल की गणना 10 का उपयोग करके करते हैं ::a%-a,, जो कि रजिस्टर में डालते हैं, और स्टैक के माध्यम से संख्याओं के अंतिम अंकों को प्रिंट करते हैं जब तक कि उनके पहले अंक रजिस्टर के समान नहीं होते हैं, फिर रजिस्टर बढ़ाना और जारी रखना। जब हम सूची के अंत तक पहुँचते हैं 0, तो, हम रुक जाते हैं।


1

PostgreSQL, 53 बाइट्स

SELECT n/10,json_agg(n%10ORDER BY n)FROM t GROUP BY 1

पूर्णांक की सूची को मौजूदा तालिका के एक integerकॉलम में रहना चाहिए । परिणाम एक दो-स्तंभ तालिका है: प्रत्येक पंक्ति में "स्टेम" स्तंभ और "पत्तियां" स्तंभ होते हैं। "पत्ते" कॉलम JSON सरणी प्रारूप में है। (जैसा कि टिप्पणियों में उल्लेख किया गया है, "टेस्ट केस" के तहत दिखाए गए प्रारूप का बिल्कुल पालन करना आवश्यक नहीं है।)nt

हालांकि, उपजी के आदेश की गारंटी नहीं है (10 बाइट्स को बचाने ORDER BY 1के लिए, क्वेरी के अंत से छोड़ा गया है), मेरे परीक्षण में, उपजी सही क्रम में समाप्त हो गए थे।

SQL फिडेल पर परिणाम देखें

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