আমি কয়টি রাজ্যের সীমানা করব?


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ম্যাথেমেটিকা ​​অন্তর্নির্মিত
ডিজেএমসিএমহেহম

@ ডিজেএমসিএমহেম উহ ওহ (প্রথমে ভাল লাগছে, তবে আপডেটটি দেখুন ...)
স্টিফেন

@ স্টেপহেন ওহ না, আমাকে ক্ষমতাচ্যুত করা হয়েছে! আমি ঠিক এখন উত্তর নিয়ে কাজ করছি যা এতে ... ...)
notjagan


আমরা কি দয়া করে ডিসি পরিচালনা করতে পারি / আমাদের গণনায় অন্তর্ভুক্ত করতে পারি?
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
@ স্কটমিলনার আমি OS%168প্রতিটি রাজ্যের উপরে দৌড়েছি , যেগুলি সরাসরি তালিকা পেয়েছিল । 250 টিরও কম সংখ্যক সম্ভাব্যতা নিয়ে জোর করে জোর করে আমি ধ্রুবক 168 পেয়েছি, তাদের প্রত্যেককে সত্যিকারের বিভিন্ন সংখ্যক সীমানার মধ্যে পার্থক্য করতে সক্ষম হওয়ার জন্য পরীক্ষা করে। 168(অন্য কয়েকজনের মধ্যে) কাজ করেছে এবং 48সংঘর্ষের কারণে কেবল হার্ড-কোড মান থাকার অতিরিক্ত সুবিধা ছিল ।
অগ্নিনির্বাপক 241

18

গণিত, 112 111 বাইট

-5 বাইট ধন্যবাদ এস এস এবং লেজিওনম্যামাল 978 কে ধন্যবাদ !

-22 বাইট (এবং আউটপুট নিয়ে একটি সমস্যা লক্ষ্য করে) নেজেনিসিসকে ধন্যবাদ !

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

অবশ্যই, এটির জন্য একটি গাণিতিক অন্তর্নির্মিত আছে। গণিতে ডিসি অন্তর্ভুক্ত।


3
এটি নোংরা অনুভব করে তবে AdministrativeDivisionএত আশ্চর্যজনকভাবে দীর্ঘ যে আপনি দৈর্ঘ্য [x = "প্রশাসনিক বিভাগ" ~ সত্তা ~ স্ট্রিংডিলিট [""] @ # ~ টপ এক্সপ্রেশন [x <> "ডেটা"] ~ "বর্ডারিংস্টেটস"] এর সাথে একটি বাইট সংরক্ষণ করুন
মার্ক এস।

1
ToExpressionSymbolযদি আমি সঠিকভাবে মনে করি তবে এর সাথে প্রতিস্থাপন করা যেতে পারে ।
LegionMammal978

1
এছাড়াও আপনার ব্যবহার করার দরকার নেই AdministrativeDivisionData, "BorderingStates"সত্তার কাছে কেবল একটি যুক্তি হিসাবে পাস করুন ; উদাহরণস্বরূপEntity["AdministrativeDivision","Alaska"]["BorderingStates"]
নেজিনিসিস

1
@ এনজেনিসিস আমি প্রথম সমস্যার জন্য একটি সমাধান প্রয়োগ করেছি; ভাগ্যক্রমে, আপনার পরামর্শের কারণে, এটি এতগুলি বাইট যোগ করেনি। আপনি ডিসি সম্পর্কে যে পরবর্তী সমস্যাটি উল্লেখ করেছেন তা কোনও সমস্যা নয় কারণ আমি ওপিকে জিজ্ঞাসা করেছি যে এটি বৈধ কিনা এবং প্রতিক্রিয়া হ্যাঁ।
notjagan

1
@ নোটজাগান আপনি অন্য একটি বাইট সংরক্ষণের Tr[1^...]জায়গায়ও ব্যবহার করতে পারেন Length@...
নেজেনিসিস

13

জাভাস্ক্রিপ্ট (ES6), 115 113 বাইট

সম্পাদনা করুন: স্টেপ হেন পাইথনের উত্তর থেকে আরও দুটি স্ট্রিং অপ্টিমাইজেশন ধার করে 2 বাইট সংরক্ষণ করা হয়েছে । আমার প্রথম প্রয়াসে আমি সেগুলি মিস করেছি।

ইনপুট হিসাবে ডাক কোড নেয়।

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

কিভাবে?

.match()পদ্ধতিতে পাস করা একটি নন-রেজিএক্সপ আর্গুমেন্ট স্পষ্টভাবে একটি রেজিএক্সপ্স অবজেক্টে রূপান্তরিত হয়। সুতরাং, আমরা /.\D*{{input}}/আমাদের এনকোডযুক্ত স্ট্রিংগুলিতে নিয়মিত প্রকাশটি পরীক্ষা করছি testing এটি একটি অঙ্ক (1) এর সাথে মিলছে , তারপরে 0 থেকে N অ-অঙ্কের অক্ষর এবং ইনপুট অনুসরণ করবে।

উদাহরণস্বরূপ: যদি ইনপুটটি "NH"(নিউ হ্যাম্পশায়ার) হয় তবে ম্যাচিং স্ট্রিংটি হবে "3CACTNDELANH"। আমরা কেবল এই স্ট্রিংয়ের প্রথম অক্ষরটি রেখেছি বা "6"কোনও মিল না থাকলে ডিফল্টরূপে ফিরে আসি।

(1): .প্রকৃতপক্ষে কোনও চরিত্রের সাথে মেলে, তবে স্ট্রিংটি এমনভাবে তৈরি করা হয়েছে যাতে অক্ষরের একটি গ্রুপের আগে যা পাওয়া যায় তা সবসময় একটি অঙ্ক is

ডেমো


হ্যাশ সংস্করণ, 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 বাইট আইসএএচজি ধন্যবাদ

-10 বাইট ETHProductions ধন্যবাদ

-1 বাইট ধন্যবাদ notjagen

অন্যান্য উত্তরগুলি যেমন করেছে তেমন ছয়টিতে ডিফল্ট করে আরও কিছু বাইট সংরক্ষণ করেছে।

টিআইও পরীক্ষার অন্তর্ভুক্ত। ডাক কোড হিসাবে ইনপুট নেয়। প্রতিটি সেটের স্ট্রিং হিসাবে রাজ্যের নামের তালিকা তৈরি করে, যেখানে সম্ভব সেখানে একসাথে স্কোয়াড করা (উদাহরণস্বরূপ, WVVAহিসাবে সংরক্ষণ করা হয় WVA)। ল্যাম্বদা ফাংশন সেই তালিকায় সূচক পায় যার স্ট্রিংটিতে ইনপুট রয়েছে। গল্ফটি ফাংশনটির মূল অংশ সম্পর্কে আমি জানি না এমন কোনও উপায় থাকতে পারে। একটি পূর্ণসংখ্যাযুক্ত তালিকা হিসাবে আউটপুটগুলি - [0]ল্যাম্বডারের শেষের সাথে পূর্ণসংখ্যা হিসাবে আউটপুট যোগ করুন ।


এছাড়াও, আপনি কেবল lএকবার ব্যবহার করেন , তাই আপনি এটি পাশাপাশি ইনলাইনও করতে পারেন।
isaacg

@ এথ প্রডাকশনগুলি হ্যাঁ, ধন্যবাদ
স্টিফেন

@ আইসাক ধন্যবাদ, আমি কেন তা দেখতে পাচ্ছি না
স্টিফেন

টেক্সাসের অবস্থান পুনরায় সাজিয়ে -1 বাইট
notjagan

@ নটজাগান ধন্যবাদ, মিস করেছেন
স্টিফেন

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:। এই জবাবটি নির্দিষ্ট রাজ্যের সন্ধান করতে রেজেক্স ব্যবহার করে এবং তারপরে মেলে তবে নির্দিষ্ট সংখ্যায় ইনপুট পরিবর্তন করে। যাইহোক, আমরা যত রাজ্যের বিরুদ্ধে পরীক্ষা করেছি তার সংখ্যা যত বাড়ছে, ততই আমরা ব্যবহার করতে পারি সবচেয়ে ছোট অনুসন্ধানটি হ্রাস পাবে। সুতরাং উদাহরণস্বরূপ, আমরা অনুসন্ধান করতে পারি না 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 বাইট।

একজন মন্তব্যকারী উল্লেখ করেছেন যে এটি একে এবং এইচআইয়ের জন্য ব্যর্থ, সুতরাং আমি সমস্যাটি সমাধান করতে দুটি বাইট যুক্ত করেছি। 151 থেকে 153 বাইট।


1
আমি প্রায় নিশ্চিত এই ব্যর্থ আছি AKএবং HIকারণ 0||66 মূল্যায়ণ, যা ভুল আউটপুট।
kamoroso94

@ কামোরোসো94 আমি আমার কোড আপডেট করেছি, যদি আপনি মনে করেন আরও ভাল সমাধান আছে তবে আমাকে জানাতে দিন me
এলি রিচার্ডসন

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 বাইট পাই:

05 এ বি 1 ই , 65 বাইট

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

এটি অনলাইন চেষ্টা করুন!


Took awhile to get the arrangement right-> ওহ, আমি মনে করি আপনি আমার উত্তরটি থেকে এটি অনুলিপি করতে পারতেন (যদি আমি এটি সঠিকভাবে পড়ছি)
স্টিফেন

@ স্টেফেন ওয়েল, আমি অন্য কোনও পোস্টের কাছ থেকে ধারণাটি পাইনি, আপনি যদি "চুষিযুক্ত হ্যাশিং অ্যালগরিদম" দেখেন তবে আমি হ্যাশিংয়ের জন্য এক ঘন্টার মতো র্যান্ডম আইডিয়া নিয়ে ঘোরাফেরা করছিলাম তবে ফাঁকা জায়গাগুলির কথা ভেবেছিলাম, আমি পেয়েছি না আমি যতই চেষ্টা করুক না কেন বাস্তবায়নটিকে পরাজিত করুন।
ম্যাজিক অক্টোপাস উরান

স্টিফেন এখন যেহেতু আমি আপনার পড়েছি, আমি আশা করি আমিও x এক্সডি ডিফল্ট হওয়ার বিষয়ে চিন্তা করতাম।
ম্যাজিক অক্টোপাস উরান

1
আমি এটি ভেবে দেখিনি, আমি প্রথমে এই উত্তরটি দেখেছি , তাই এটি নির্দ্বিধায় অনুভব করুন: পি
স্টিফেন


2

জাভাস্ক্রিপ্ট (ES6), 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

এক্সেল ভিবিএ, 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)6 টি রাজ্যের সীমান্তবর্তী রাষ্ট্রগুলি ব্যবহার করে এবং সরিয়ে প্রায় 50 বাইট সংরক্ষণ করতে পারবেন । আমি এই দুটি কৌশল দিয়ে 219 এ নামতে সক্ষম হয়েছি।
bfontaine

@ মিচ এর পরিবর্তে .এবং করার পরিবর্তে জায়গাগুলি ব্যবহার করে আরও কিছু বাঁচান split()(আমার মনে হয়)
স্টিফেন

@ মিচ আপনার কি পিরিয়ডের দরকার আছে? তালিকার 2 টি গ্রুপে বিভক্ত করার কি কোনও পদ্ধতি আছে?
ম্যাজিক অক্টোপাস উরন

আমি বিশ্বাস করি আপনি আরও কিছু বাইট ব্যবহার করে সংরক্ষণ করতে পারেন 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

আমি ঠিক বুঝতে পেরেছি যে তিনটি বর্ণের পরিবর্তনশীল নামের বিলাসিতা নিয়েছি - 4 বাইট নিচে, 400 যেতে!


পিপিসিজিতে আপনাকে স্বাগতম! কখনও কখনও সহজ সমাধানগুলি আরও কম হয়, যেমনটি অন্যান্য পাইথন
স্টিফেন

হ্যাঁ, আমি সব প্রচেষ্টা আপনি এই পুরা ভালোবাসি, বিবেচনা করা আপনার দোষী পরিতোষ "তাই সংক্ষিপ্ত এটা অস্পষ্ট আপনার কোড তৈরীর", আপনি সঠিক মাপসই করব।
Zachary
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.