मुझे कितने राज्यों की सीमा लगती है?


20

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

काम

50 अमेरिकी राज्यों में से एक को देखते हुए, या तो इसके पूर्ण नाम से या इसके संक्षिप्त नाम से, जैसा कि इस पृष्ठ पर पाया गया है ( आर्काइव.ऑर्ग मिरर ), उन राज्यों की संख्या लौटाता है जिनकी यह सीमा है। इस वेबसाइट पर पाए जाने वाले राज्यों की संख्या के लिए पूरे राज्य के नाम के लिए सभी जानकारी का मानचित्रण निम्नलिखित है ।

Missouri, Tennessee -> 8
Colorado, Kentucky -> 7
Arkansas, Idaho, Illinois, Iowa, Nebraska, New York, Oklahoma, Pennsylvania, South Dakota, Utah, Wyoming -> 6
Arizona, Georgia, Massachusetts, Michigan, Minnesota, Nevada, New Mexico, Ohio, Virginia, West Virginia -> 5
Alabama, Indiana, Kansas, Maryland, Mississippi, Montana, North Carolina, Oregon, Texas, Wisconsin -> 4
California, Connecticut, Delaware, Louisiana, New Hampshire, New Jersey, North Dakota, Rhode Island, Vermont -> 3
Florida, South Carolina, Washington -> 2
Maine -> 1
Alaska, Hawaii -> 0

नियम

  • आपका कार्यक्रम या तो पूर्ण राज्य का नाम या पोस्टल कोड संभाल सकता है - यह संयोजन का उपयोग नहीं कर सकता है।
  • आप इनपुट के मामले को निर्दिष्ट कर सकते हैं, लेकिन आप इनपुट में व्हॉट्सएप को हटा नहीं सकते हैं।
  • आपको वाशिंगटन, डीसी, या कुछ भी ऐसा नहीं है जो 50 राज्यों में से एक नहीं है।
  • सीमावर्ती राज्यों में इनपुट राज्य शामिल नहीं है
  • यह , इसलिए बाइट्स जीत में सबसे छोटा जवाब है।

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


11
inb4मेथेमेटिका में निर्मित
DJMcMayhem

@DJMcMayhem उह ओह (पहली बार में अच्छा लग रहा है, लेकिन अपडेट देखें ...)
स्टीफन

@StepHen अरे नहीं, मुझे बेदखल कर दिया गया है! मैं अभी जवाब पर काम कर रहा था कि यह शामिल है ...;)
notjagan


क्या हम डीसी को संभाल सकते हैं / यदि हम ऐसा करते हैं तो कृपया इसे हमारी गिनती में शामिल करें?
नॉटजैगन

जवाबों:


17

जेली , 73 65 बाइट्स

“U[“Ȥ“!÷2“®Ɓ⁵]StƁ}K“ʂÞiƬ¦.ÞrÆu“4œ(°fWg?Ʋd“Ɠ©“Œb‘i³OS%168¤$€Tµ’6L?

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

Builtins? किसको चाहिए? ( ʂÞiƬघृणा में जमीन पर)।

इनपुट को पूर्ण नाम के रूप में लेता है, जैसे कि "Idaho"

यह काम किस प्रकार करता है

“U[“Ȥ“!÷2“®Ɓ⁵]StƁ}K“ʂÞiƬ¦.ÞrÆu“4œ(°fWg?Ʋd“Ɠ©“Œb‘i³OS%168¤$€Tµ’6L?
“U[“Ȥ“!÷2“®Ɓ⁵]StƁ}K“ʂÞiƬ¦.ÞrÆu“4œ(°fWg?Ʋd“Ɠ©“Œb‘                   The literal list of code-page index lists  [[85, 91], [154], [33, 28, 50], [8, 143, 133, 93, 83, 116, 143, 125, 75], [167, 20, 105, 152, 5, 46, 20, 114, 13, 117], [52, 30, 40, 128, 102, 87, 103, 63, 153, 100], [147, 6], [19, 98]]
                           €        On each sublist:
                         ¤            Evaluate the hash value:
                 ³                     Input
                   O                   Character values
                    S                  Sum.
                     %                 Modulus.
                      168              168
                i                     Does the sublist contain that nilad?
                            T       Get the sublist which does contain that nilad.
                                 ?  If
                                L     Length.
                                    Then
                             ’        Return the index - 1
                                    Else
                              6      Return 6

उस सूची को प्राप्त करने के लिए आपने किस प्रक्रिया का उपयोग किया?
स्कॉट मिलनर

2
@ScottMilner मैं OS%168प्रत्येक राज्य में भाग गया, जिसने सीधे सूची प्राप्त की। मैंने पाया कि लगातार 168 को ब्रूट-फोर्स द्वारा 250 से कम की सभी संभावनाओं को देखते हुए, उनमें से प्रत्येक को विभिन्न सीमाओं के बीच वास्तव में अंतर करने में सक्षम होने के लिए जाँच कर रहा है। 168काम किया (कुछ अन्य लोगों के बीच) और 48टक्करों की वजह से केवल हार्ड-कोड मान होने का अतिरिक्त लाभ था ।
फायरफ्लेम 241

18

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

-5 एस मार्क एस और LegionMammal978 के लिए धन्यवाद !

-22 बाइट्स (और आउटपुट के साथ एक समस्या को नोटिस करना) ngenisis के लिए धन्यवाद !

Tr[1^Entity["AdministrativeDivision",#~StringDelete~" "]@"BorderingStates"]+Boole@StringMatchQ[#,"Il*"|"Mic*"]&

बेशक, इसके लिए एक गणितज्ञ बिल्टिन है। गिनती में डीसी शामिल हैं।


3
यह गंदा लगता है, लेकिन AdministrativeDivisionइतना लंबा है कि आप लंबाई [x = "एडमिनिस्ट्रेटिव डिविज़न" ~ एंटिटी ~ StringDelete [""] @ # ~ ToExpression [x <> "Data"] ~ "BorderingStates" & के साथ एक बाइट बचा लेंगे।
मार्क एस।

1
ToExpressionके साथ प्रतिस्थापित किया जा सकता है Symbol, अगर मुझे सही याद है।
लेजिओनमल 978

1
इसके अलावा आपको उपयोग करने की आवश्यकता नहीं है AdministrativeDivisionData, बस "BorderingStates"इकाई के तर्क के रूप में पास करें ; जैसेEntity["AdministrativeDivision","Alaska"]["BorderingStates"]
नजनीस

1
@ngenisis मैंने पहली समस्या को ठीक किया; सौभाग्य से, आपके सुझावों के कारण, इसने कई बाइट्स नहीं जोड़े। डीसी के बारे में आपके द्वारा बताई गई बाद की समस्या कोई समस्या नहीं है क्योंकि मैंने ओपी से पूछा था कि क्या यह मान्य था और प्रतिक्रिया हां थी।
नॉटजगन

1
@ नॉटजगन आप एक और बाइट को बचाने Tr[1^...]के Length@...लिए भी इस्तेमाल कर सकते हैं ।
ngenisis

13

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

संपादित करें: Step Hen Python उत्तर से 2 और स्ट्रिंग अनुकूलन प्राप्त करके 2 बाइट्स बचाए । मैंने अपने शुरुआती प्रयास में उन्हें याद किया।

इनपुट के रूप में पोस्टल कोड लेता है।

s=>('7KYCO8MOTN0AKHI1ME2FLSCWA3CACTNDELANHNJRIVT4ALWINCKSMDMSMTXOR5GAZOHMANMIMNVWVA'.match('.\\D*'+s)||'6')[0][0]

कैसे?

.match()विधि के लिए पारित एक गैर- RegExp तर्क को एक RegExp ऑब्जेक्ट में बदल दिया जाता है। तो, हम /.\D*{{input}}/अपने एन्कोडेड स्ट्रिंग पर नियमित अभिव्यक्ति का परीक्षण कर रहे हैं । यह एक अंक (1) से मेल खा रहा है , उसके बाद 0 से N गैर-अंक वर्ण, इसके बाद इनपुट।

उदाहरण के लिए: यदि इनपुट "NH"(न्यू हैम्पशायर) है, तो मिलान स्ट्रिंग होगा "3CACTNDELANH"। हम केवल इस स्ट्रिंग का पहला वर्ण रखते हैं, या "6"यदि कोई मिलान नहीं था, तो डिफ़ॉल्ट रूप से वापस आते हैं ।

(1): .वास्तव में किसी भी वर्ण का मिलान होता है, लेकिन स्ट्रिंग को इस तरह से बनाया जाता है कि अक्षरों के समूह से पहले जो पाया जाता है वह हमेशा एक अंक होता है।

डेमो


हैश संस्करण, 115 बाइट्स

एक ही इनपुट प्रारूप।

s=>`04436303035050063062750600644408${6e7}503600300540410005207058036442600400000650035`[parseInt(s,33)%589%180%98]

डेमो


आप बहुत से बाइट्स को बचा सकते हैं, जो कि स्ट्रिंग
डाउनगोट

7

पायथन 3 , 168 154 153 137 बाइट्स

lambda s:[i for i,S in enumerate('AKHI ME FLSCWA CACTLANHNJNDERIVT ALWINCKSMDMSMTXOR MAZOHGANMIMNVWVA A KYCO MOTN'.split())if s in S]or 6

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

-4 बाइट्स isaacg के लिए धन्यवाद

-10 बाइट्स ETHProductions के लिए धन्यवाद

-1 बाइट नोटेजेन के लिए धन्यवाद

कुछ और बाइट्स को छह के लिए डिफ़ॉल्ट रूप से सहेजा, जैसा कि अन्य उत्तरों ने किया है।

TIO में परीक्षण शामिल हैं। इनपुट को पोस्टल कोड के रूप में लेता है। प्रत्येक सेट के लिए स्ट्रिंग्स के रूप में राज्य के नामों की एक सूची तैयार करता है, जहां संभव हो (उदाहरण के लिए, WVVAसंग्रहीत किया जाता है WVA) को एक साथ जोड़ा जाता है । लैंबडा फ़ंक्शन को उस सूची में इंडेक्स मिलता है जिसके स्ट्रिंग में इनपुट होता है। एक ऐसा तरीका हो सकता है जो मुझे फ़ंक्शन के शरीर के बारे में पता नहीं है। पूर्णांक वाली सूची के रूप में आउटपुट - पूर्णांक के रूप में आउटपुट में लंबोदर [0]के अंत में जोड़ें ।


इसके अलावा, आप केवल lएक बार उपयोग करते हैं , इसलिए आप इसे इनलाइन भी कर सकते हैं।
isaacg

@ETHproductions हां, धन्यवाद
स्टीफन

@isaacg धन्यवाद, मुझे पता नहीं चला कि क्यों
स्टीफन

टेक्सास की स्थिति को पुनर्व्यवस्थित करके -1 बाइट
नॉटजगन

@ नॉटजगन धन्यवाद, याद आया कि
स्टीफन

4

वी , 143 बाइट्स

çourüee/C8
çdoüke/C7
çrküI„sn]üebüOkünnsüSDüUüwy/C6
çzüg„ot]üttüinnüvaüxiüOh/C5
çbüdiüKüMáû5}üNCüOüTüWi/C4
ç^[CDLNRV]/C3
ç[FSW]/C2
çM/C1
ñlS0

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

Hexdump:

00000000: e76f 7572 fc65 652f 4338 0ae7 646f fc6b  .our.ee/C8..do.k
00000010: 652f 4337 0ae7 726b fc49 8473 6e5d fc65  e/C7..rk.I.sn].e
00000020: 62fc 4f6b fc6e 6e73 fc53 8144 fc55 fc77  b.Ok.nns.S.D.U.w
00000030: 792f 4336 0ae7 7afc 6784 6f74 5dfc 7474  y/C6..z.g.ot].tt
00000040: fc69 6e6e fc76 61fc 7869 fc4f 682f 4335  .inn.va.xi.Oh/C5
00000050: 0ae7 62fc 6469 fc4b fc4d e1fb 357d fc4e  ..b.di.K.M..5}.N
00000060: 8143 fc4f fc54 fc57 692f 4334 0ae7 5e5b  .C.O.T.Wi/C4..^[
00000070: 4344 4c4e 5256 5d2f 4333 0ae7 5b46 5357  CDLNRV]/C3..[FSW
00000080: 5d2f 4332 0ae7 4d2f 4331 0af1 6c53 30    ]/C2..M/C1..lS0

इससे पहले कि मुझे एहसास हुआ कि आप इनपुट को पोस्टल कोड के रूप में ले सकते हैं। मुझे यकीन नहीं है कि यह वास्तव में छोटा है या नहीं :shrug:। यह उत्तर कुछ राज्यों की खोज के लिए regex का उपयोग करता है, और यदि यह मेल खाता है तो इनपुट को एक निश्चित संख्या में बदल देता है। हालाँकि, हमने जितने राज्यों के विरुद्ध परीक्षण किया है, वह सबसे छोटी खोज है, जिसका हम उपयोग कर सकते हैं। उदाहरण के लिए, हम के लिए खोज नहीं कर सकते Cक्योंकि उस से मेल खाएगा Coloradoऔर California। (साथ ही कोनेटिकट और द कैरोलिनास) हालांकि, एक बार जब हमने हर उस राज्य के लिए परीक्षण किया है जिसमें 3 से अधिक बॉर्डरिंग है, तो हम बस सी के साथ शुरुआत की खोज कर सकते हैं क्योंकि यह अब पिछले एक से मेल नहीं खा सकता है।

कुछ परीक्षण मामले गलत हो सकते हैं क्योंकि मेरे पास उन सभी का परीक्षण करने का समय नहीं है। अगर आपको कोई गलत आउटपुट मिले तो मुझे बताएं। :)


3

जावास्क्रिप्ट, 153 बाइट्स

MO=TN=8;CO=KY=7;AZ=GA=MA=MI=MN=NV=NM=OH=VA=WV=5;AL=IN=KS=MD=MS=MT=NC=OR=TX=WI=4;CT=DE=LA=NH=NJ=ND=RI=VT=3;FL=WA=2;ME=1;AK=HI="0";alert(self[prompt()]||6)

परिवर्तनीय जंजीर। मुझे यकीन है कि ऐसा करने का एक बेहतर तरीका है।

किसी डिसॉर्डर से किसी के सुझाव की बदौलत आउटपुट डिफॉल्ट्स से 6 तक, सबसे सामान्य सीमा वाले राज्यों की संख्या। 183 बाइट्स 151 बाइट्स तक।

एक टिप्पणीकार ने कहा कि यह AK और HI के लिए विफल है, इसलिए मैंने समस्या को ठीक करने के लिए दो बाइट्स जोड़े हैं। 151 से 153 बाइट्स।


1
मुझे पूरा यकीन है कि यह विफल रहता है AKऔर HIक्योंकि 0||66 का मूल्यांकन करता है, जो गलत आउटपुट है।
kamoroso94

@ kamoroso94 मैंने अपना कोड अपडेट कर लिया है, अगर आपको लगता है कि बेहतर फ़िक्स है तो मुझे बताएं।
एली रिचर्डसन

3

05AB1E , 78 72 बाइट्स

.•n£þuγ{çâ/₁=èó[nK™ΩFîÀî˜Çʒ÷¿ηZ¬³ã®ÿΣÔ¢*5ŠÜ‚!¶Ö¾#}ê(Ûø‰¢þL[Æ₁cgIkö•s¡¬ð¢

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


.•n£þuγ{çâ/₁=èó[nK™ΩFîÀî˜Çʒ÷¿ηZ¬³ã®ÿΣÔ¢*5ŠÜ‚!¶Ö¾#}ê(Ûø‰¢þL[Æ₁cgIkö•
# Push the string: akhi me flscwa cactdelanhnjndrivt alinksmdmsncmtortxwi azgamamimnnvnmvaohwv idilianarenyokpnsdutwy kyco motn

s¡    # Split on input.
  ¬   # Get head.
   ð¢ # Count number of spaces.

यह केवल इसलिए काम करता है क्योंकि राज्यों के बीच ओवरलैप में राज्य के आदेश का क्रम सं।

a[kh]i 
me 
f[ls][cw]a 
c[ac][td][el][an][hn][jn][dr][iv]t 
a[li][nk][sm][dm][sn][cm][to][rt][xw]i 
a[zg][am][am][im][nn][vn][mv][ao][hw]v 
i[di][li][an][ar][en][yo][kp][ns][du][tw]y 
k[yc]o 
m[ot]n

व्यवस्था को ठीक करने के लिए कुछ समय लिया ... फिर, इनपुट पर विभाजन करके और पहले भाग में रिक्त स्थान की गिनती करके, हमें सही परिणाम मिलता है।


यदि मैं अन्य उत्तरों में से "डिफ़ॉल्ट 6" चुराता हूं, तो मुझे 65 बाइट्स मिलते हैं:

05AB1E , 65 बाइट्स

.•3θ0ÔÕ—ú^?D§:‚A†ǝλα“i›p‚ιCöΔƒñPŠ J€ŽãB»ΣUƤÆuhÃgЦ,Y²•s¡¬ð¢D9Qi6

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


Took awhile to get the arrangement right-> ओह, मुझे लगता है कि आप इसे मेरे जवाब से कॉपी कर सकते थे (यदि मैं इसे सही ढंग से पढ़ रहा हूं)
स्टीफन

@ स्टीफन खैर, मुझे किसी अन्य पोस्ट से विचार नहीं मिला, अगर आप "चूसा हैशिंग एल्गोरिथ्म" को देखते हैं, तो मैं हैशिंग के लिए यादृच्छिक विचारों के साथ लगभग एक घंटे के लिए गड़बड़ कर रहा था, तो रिक्त स्थान के बारे में सोचा, पाया कि मैं नहीं कर सका चाहे मुझे कितनी भी कोशिश क्यों न करनी पड़े।
मैजिक ऑक्टोपस Urn

@ स्टेफेन अब जब मैंने तुम्हारा पढ़ा, काश मैंने भी 6 xD को डिफ़ॉल्ट करने के बारे में सोचा होता।
मैजिक ऑक्टोपस Urn

1
मैंने इसके बारे में सोचा नहीं था, मैंने इसे पहले इस जवाब पर देखा , इसलिए इसे लेने के लिए स्वतंत्र महसूस करें: P
स्टीफन


2

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

s=>/las|ii/[t='test'](s)?0:/ai/[t](s)?1:/Fl|Wa|S.*C/[t](s)?2:/fo|ct|de|ui|mp|er|^N.+ak/i[t](s)?3:/do|ck/[t](s)?7:/ur|ee/[t](s)?8:/iz|gi|ch|ev|xi|hi|es/[t](s)?5:/rk|ah|oi|ow|br|om|lv|ak/[t](s)?6:4

नियमित अभिव्यक्तियों की एक श्रृंखला, जो राज्य के पूर्ण नाम पर काम करती है।

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


2

जेली ,  61  59 बाइट्स

OP%⁽/r%101eЀ“¿=“þ“(7“¡¦ðø,0@L“€ç÷<CMZa“Ø!)5HNV““1^“¥+‘Tȯ7’

पूर्ण राज्य का नाम लेने और परिणाम को मुद्रित करने के लिए एक पूर्ण कार्यक्रम (एक विवादास्पद लिंक के रूप में यह या तो एक एकल संख्या या 6 नंबर वाली सूची देता है)।

इसे ऑनलाइन आज़माएं! या एक परीक्षण सूट देखें

कैसे?

“¿=“þ“(7“¡¦ðø,0@L“€ç÷<CMZa“Ø!)5HNV““1^“¥+‘

कोड-पृष्ठ सूचकांकों की सूची की एक सूची है:

[[11,61],[31],[40,55],[0,5,24,29,44,48,64,76],[12,23,28,60,67,77,90,97],[18,33,41,53,72,78,86],[],[49,94],[4,43]]

और “ ... ‘नीचे के रूप में दिखाया गया है :

OP%⁽/r%101eЀ“ ... ‘Tȯ7’ - Main link: list of characters, stateName  e.g. Ohio
O                        - cast to ordinals                   [79,104,105,111]
 P                       - product                                    95757480
   ⁽/r                   - base 250 literal                              12865
  %                      - modulo by 12865                                3285
      %101               - modulo by 101                                    53
             “ ... ‘     - list of lists of code-page indices
          eЀ            - map: exists in?                 [0,0,0,0,0,1,0,0,0]
                    T    - truthy indices (if none yields an empty list)   [6]
                     ȯ7  - logical or with 7 (replace empty list with 7)   [6]
                       ’ - decrement                                       [5]
                         - implicit print (Jelly's representation of a list of
                         -                 one item is just that item)       5

1

एक्सेल VBA, 177 154 147 बाइट्स

बेनामी VBE फ़ंक्शन जो इनपुट लेता है, अपेक्षित प्रकार के Stringएक राज्य के पोस्टल कोड का प्रतिनिधित्व करता है, सीमा से [A1], और एक रिटर्न जो Integerकि उस राज्य की सीमा की संख्या का प्रतिनिधित्व करता है।

For i=0To 8:r=r+IIf(Instr(1,Split("AKHI ME FLSCWA CACTLANHNJNDERIVT ALWINCKSMDMSMTXOR MAZOHGANMIMNVWVA | KYCO MOTN")(i),[A1]),i,0):Next:?IIf(r,r,6)

पिछला संस्करण

154 बाइट्स:

For Each s in Split("AKHI ME FLSCWA CACTLANHNJNDERIVT ALWINCKSMDMSMTXOR MAZOHGANMIMNVWVA | KYCO MOTN"):r=r+IIf(Instr(1,s,[A1]),i,0):i=i+1:Next:?IIf(r,r,6)

177 बाइट्स:

[2:2]=Split("AKHI ME FLSCWA CACTLANHNJNDERIVT ALWINCKSMDMSMTXOR MAZOHGANMIMNVWVA A KYCO MOTN"):[3:3]="=IfError(If(Find($A1,A2),Column(A3)),"""")":[B1]="=Sum(3:3)":?[If(B1,B1,6)]

पठनीयता के लिए प्रारूपित

[2:2]=Split("AKHI ME FLSCWA CACTLANHNJNDERIVT ALWINCKSMDMSMTXOR MAZOHGANMIMNVWVA | KYCO MOTN")
[3:3]="=IfError(If(Find($A1,A2),Column(A3)-1),"""")"
[B1]="=Sum(3:3)"
?[If(B1,B1,6)]

1

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

lambda a:dict(WA=2,WI=4,WV=5,FL=2,NH=3,NJ=3,NM=5,NC=4,ND=3,RI=3,NV=5,CO=7,CA=3,GA=5,CT=3,OH=5,KS=4,SC=2,KY=7,OR=4,DE=3,HI=0,TX=4,LA=3,TN=8,VA=5,AK=0,AL=4,VT=3,IN=4,AZ=5,ME=1,MD=4,MA=5,MO=8,MN=5,MI=5,MT=4,MS=4).get(a,6)

चलो सरल के साथ शुरू करते हैं थोड़ा अनुकूलित हार्डकोड जवाब के । इनपुट के रूप में पोस्टल कोड लेता है।

-145 बाइट्स बफोंटेन के लिए धन्यवाद।


4
के dict(MO=8,TN=8,...)बजाय का उपयोग करके आप लगभग 100 बाइट्स बचा सकते हैं {'MO':8,'TN':8,...}। फिर आप .get(a,6)उन राज्यों का उपयोग करके और उन्हें हटाकर लगभग 50 बाइट्स बचा सकते हैं जो 6 अन्य राज्यों की सीमा पर हैं। मैं उन दो चालों के साथ 219 तक नीचे जाने में सक्षम हूं।
bfontaine

@ मिच .और split()(मुझे लगता है) के बजाय अंतरिक्ष का उपयोग करके कुछ और बचाओ
स्टीफन

@ क्या आपको पीरियड्स की भी जरूरत है? क्या सूची को 2 के समूहों में विभाजित करने की कोई विधि है?
मैजिक ऑक्टोपस Urn

मेरा मानना ​​है कि आप कुछ और बाइट्स का उपयोग करके बचा सकते हैं dict((i[0]+i[1],int(i[-1])) for i in zip(*[iter("WA2WI4WV5FL2...")]*3))। इसके अलावा int, यदि आप इसे एक स्ट्रिंग के रूप में आउटपुट की अनुमति देते हैं, तो आप शायद इसे छोड़ सकते हैं ।
इजाक वैन

वास्तव में यदि आप अनपैकिंग का उपयोग करते हैं तो आप कर सकते हैं dict((a+b,int(c)) for a,b,c in zip(*[iter("WA2WI4WV5...")]*3))। क्षमा करें, मैं थोड़ा अशोभनीय हूं: D
Izaak van Dongen

1

पॉवरशेल , 187 बाइट्स

param($a)$x=($b=" MO8TN8CO7KY7AZ5GA5MA5MI5MN5NV5NM5OH5VA5WV5AL4IN4KS4MD4MS4MT4NC4OR4TX4WI4CA3CT3DE3LA3NH3NJ3ND3RI3VT3FL2SC2WA2ME1").IndexOf($a);if($x+1){$b[$x+2];exit}6-6*($a-in'AK','HI')

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

मुझे यकीन है कि ऐसा करने का एक बेहतर तरीका है, लेकिन यहां मैं जिस दृष्टिकोण के साथ आया हूं।

राज्य / सीमा संयोजनों के लंबे तार में इसकी घटना $aप्राप्त करने के लिए इनपुट और उपयोग करता है .IndexOf। स्टोर कि प्रक्रिया में $xऔर स्ट्रिंग में $b। फिर एक ifबयान में जाता है जो यह जांचता है कि क्या यह एक मैच मिला, और यदि ऐसा है तो अंक को और फिर सूचकांक को exit। अन्यथा, हम 6राज्यों या में AKसे एक हैं HI, इसलिए हम यह देखने के लिए कुछ तर्क करते हैं कि क्या $aदोनों 0राज्यों में से कोई है, और यदि आवश्यक हो तो घटाएं। किसी भी मामले में, पाइपलाइन पर छोड़ दिया गया है और आउटपुट निहित है।


1

पायथन 3, 729 733 बाइट्स

इनपुट को पोस्टल संक्षिप्त नाम के रूप में लेता है। यह एक गोल्फ चुनौती पर मेरा पहला प्रयास है, और यह सबसे छोटा है जिसके बारे में मुझे लगता है कि मैं इस नारकीय दृष्टिकोण के साथ मिल सकता हूं। मुझे पता है कि यह बड़े पैमाने पर है - यह सोचने के लिए आइए मैं शायद if-elseबयानों के साथ बेहतर हो सकता हूं , लेकिन उस समय और प्रयास के बाद मुझे पोस्ट करना पड़ा: डी।

lambda s:sum((i-32)*96**j for j,i in enumerate(b'`*g$<#?wP\\.=)kuDbk$yvv\\D:Nh:cd/Pj, e*[_yXGz6lR<$jMo0qUU*7(Dua3-ThO}iX6VWRYDv=<K$8mVbYK9ld);TFB/m\'NE3ow4./pUsI5yJrwYrM4@e6\\kHJ%q8NA3>fb!~-rtwsRW=RBni}Y7T^gD\\IoxzJf.%|1.&4*"$%Q+).|8p(vcJ]cLRGUyC2eF:<Q4!_)y\\<`tr2A[z7re6OaR["2PRv\x7f,bRE [XrvtA<R<UlS23on?Byym&uy{XuB\x7fIMfh<y&waHElg-vk:4*on\x7f@?Ai5=2swfZSBF.PjkL{,|=,M<Bw"w,e@f`aKnmh\'xgg1#b4En\x7f+*\'g_ZRoeN*Q]mX\'>RoGc~ZP~e&{Hwo6bd<](hV)=l9#[f<Gj,#Ea!nJnL=9k"M,`bP2PsP6(eJoGEU>GA?,BpS}"RzzdMRtL[cre;\\tld^xT\':pry\'Nu_*R}eYg_U!Ld{p7<f:95lD]OBMX(r"Jg\'|%Cq"`Qy9g0aNrtYP9dnPRRr3\'yT(CE~\\&@5#tMLZ+a:V5NNXVp+Uy61s9$=Vb99(!ga7f7x}#=*]q.\x7f0R+f[*m:i^qe#D 8M&W\x7faGmCNCU9"~1Pj!]2r5 H>rYPqwfg4cFG*3-(z'))>>(5*int(s,36)-1850)&15

मुझे बस एहसास हुआ कि मैंने तीन अक्षरों के चर नाम का लक्ज़री ले लिया है - ४ बाइट्स नीचे, ४०० जाने के लिए!


PPCG में आपका स्वागत है! कभी-कभी सरल समाधान कम होते हैं, जैसा कि अन्य पायथन उत्तर द्वारा दिखाया गया है: पी
स्टीफन

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