Có bao nhiêu tiểu bang tôi biên giới?


20

Khi tôi còn trẻ, tôi có một bản đồ lớn của Hoa Kỳ được dán trên tường đối diện với giường của tôi. Khi tôi chán, tôi sẽ nhìn chằm chằm vào bản đồ đó và suy nghĩ về mọi thứ. Những thứ như định lý bốn màu, hoặc trạng thái giáp với hầu hết các trạng thái khác. Để tiết kiệm cho tôi một chút năng lực trong việc đếm, bạn sẽ phát minh ra một cỗ máy thời gian và cho tôi biết có bao nhiêu tiểu bang giáp đầu vào. Bởi vì thời gian là khó khăn, điều này cần phải càng ngắn càng tốt.

Nhiệm vụ

Cho một trong 50 tiểu bang của Hoa Kỳ, bằng tên đầy đủ hoặc viết tắt qua bưu điện, như được tìm thấy trên trang này ( gương.org.org ), trả về số lượng tiểu bang mà nó giáp. Sau đây là ánh xạ của tất cả các đầu vào cho tên trạng thái đầy đủ đến số trạng thái liền kề, được tìm thấy trên trang web này .

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

Những quy định

  • Chương trình của bạn có thể xử lý tên trạng thái đầy đủ hoặc mã bưu chính - nó không thể sử dụng kết hợp.
  • Bạn có thể chỉ định trường hợp đầu vào, nhưng bạn không thể xóa khoảng trắng trong đầu vào.
  • Bạn không phải xử lý Washington, DC hoặc bất cứ điều gì không phải là một trong 50 tiểu bang.
  • Số lượng trạng thái được viền không bao gồm trạng thái đầu vào.
  • Đây là , vì vậy câu trả lời ngắn nhất bằng byte thắng.

Mặc dù tôi biết rằng đây có thể là bất kỳ ai có khả năng nén tốt nhất hoặc tìm thấy mẫu regex tốt nhất cho mỗi số, nếu tôi nhận được quá nhiều câu trả lời đó, tôi sẽ trao tiền thưởng cho câu trả lời tạo ra bản đồ của Hoa Kỳ và sử dụng nó cho tính số lượng các trạng thái giáp ranh.


11
inb4Toán học tích hợp sẵn
DJMcMayhem

@DJMcMayhem uh oh (nghe có vẻ tốt, nhưng hãy xem bản cập nhật ...)
Stephen

@StepHen Ồ không, tôi đã bị lật đổ! Tôi vừa mới làm việc với câu trả lời vừa kết hợp điều này ...;)
notjagan


Chúng tôi có thể xử lý DC / bao gồm nó trong số của chúng tôi nếu chúng tôi vui lòng không?
notjagan

Câu trả lời:


17

Thạch , 73 65 byte

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

Hãy thử trực tuyến!

Nội tích? Ai cần những thứ đó? ( ʂÞiƬtrên mặt đất trong sự ghê tởm).

Lấy đầu vào là tên đầy đủ, chẳng hạn như "Idaho".

Làm thế nào nó hoạt động

“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

Quá trình bạn đã sử dụng để có được danh sách đó?
Scott Milner

2
@ScottMilner Tôi đã chạy OS%168trên mỗi tiểu bang, nơi trực tiếp mang lại danh sách. Tôi tìm thấy hằng số 168 bằng cách bắt buộc tất cả các khả năng nhỏ hơn 250, kiểm tra từng trong số chúng để có thể thực sự phân biệt giữa các số lượng đường viền khác nhau. 168đã làm việc (trong số một vài người khác) và có thêm lợi ích khi chỉ phải sử dụng 48các giá trị mã cứng vì va chạm.
fireflame241

18

Toán học, 112 111 byte

-5 byte nhờ Mark S.LegionMammal978 !

-22 byte (và nhận thấy vấn đề với đầu ra) nhờ ngenisis !

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

Tất nhiên, có một Mathicala dựng sẵn cho nó. Bao gồm DC trong số đếm.


3
Điều này cảm thấy bẩn, nhưng AdministrativeDivisiondài đến mức đáng kinh ngạc đến nỗi bạn lưu một byte với Độ dài [x = "Hành chính" ~ Thực thể ~ StringDelete [""] @ # ~ ToExpression [x <> "Dữ liệu"] ~ "BorderingStates"] &
Đánh dấu S.

1
ToExpressioncó thể được thay thế bằng Symbol, nếu tôi nhớ chính xác.
LegionMammal978

1
Ngoài ra, bạn không cần phải sử dụng AdministrativeDivisionData, chỉ cần chuyển "BorderingStates"như một đối số cho thực thể; ví dụEntity["AdministrativeDivision","Alaska"]["BorderingStates"]
ngenisis

1
@ngenisis Tôi đã áp dụng một sửa chữa cho vấn đề đầu tiên; may mắn thay, do đề xuất của bạn, nó đã không thêm nhiều byte. Vấn đề thứ hai mà bạn đề cập liên quan đến DC không phải là vấn đề vì tôi đã hỏi OP rằng điều này có hợp lệ không và câu trả lời là có.
notjagan

1
@notjagan Bạn cũng có thể sử dụng Tr[1^...]thay thế Length@...để lưu một byte khác.
ngenisis

13

JavaScript (ES6), 115 113 byte

Chỉnh sửa: đã lưu 2 byte bằng cách mượn thêm 2 tối ưu hóa chuỗi từ câu trả lời của Step Hen Python . Tôi đã bỏ lỡ họ trong nỗ lực ban đầu của tôi.

Lấy mã bưu chính làm đầu vào.

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

Làm sao?

Một đối số không phải là RegExp được truyền cho .match()phương thức được chuyển đổi hoàn toàn thành đối tượng RegExp. Vì vậy, chúng tôi đang kiểm tra biểu thức chính quy /.\D*{{input}}/trên chuỗi được mã hóa của chúng tôi. Đây là khớp một chữ số (1) , theo sau là 0 đến N ký tự không có chữ số, theo sau là đầu vào.

Ví dụ: nếu đầu vào là "NH"(New Hampshire), chuỗi khớp sẽ là "3CACTNDELANH". Chúng tôi chỉ cần giữ ký tự đầu tiên của chuỗi này hoặc trả về"6" theo mặc định nếu không có kết quả khớp.

(1): . tế phù hợp với bất kỳ ký tự nào, nhưng chuỗi được xây dựng theo cách mà những gì được tìm thấy trước một nhóm các chữ cái luôn luôn là một chữ số.

Bản giới thiệu


Phiên bản băm, 115 byte

Định dạng đầu vào giống nhau.

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

Bản giới thiệu


Bạn có thể tiết kiệm rất nhiều byte bằng cách btoaing Chuỗi đó
Downgoat

7

Python 3 , 168 154 153 137 byte

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

Hãy thử trực tuyến!

-4 byte nhờ isaacg

-10 byte nhờ vào ETH Productstions

-1 byte nhờ notjagen

Đã lưu thêm một số byte bằng cách mặc định là sáu, như các câu trả lời khác đã làm.

TIO bao gồm các bài kiểm tra. Lấy đầu vào là mã bưu chính. Tạo một danh sách các tên trạng thái dưới dạng chuỗi cho mỗi bộ, được ghép với nhau nếu có thể (ví dụ: WVVAđược lưu trữ dưới dạng WVA). Hàm lambda lấy chỉ mục trong danh sách có chuỗi chứa đầu vào. Có thể có một cách tôi không biết về cơ thể của chức năng. Đầu ra dưới dạng một danh sách chứa một số nguyên - thêm [0]vào cuối lambda để xuất thành số nguyên.


Ngoài ra, bạn chỉ sử dụng lmột lần, vì vậy bạn cũng có thể nội tuyến nó.
isaacg

@ETHproductions yep, cảm ơn
Stephen

@isaacg cảm ơn, dunno tại sao tôi không thấy điều đó
Stephen

-1 byte bằng cách sắp xếp lại vị trí của Texas.
notjagan

@notjagan cảm ơn, đã bỏ lỡ điều đó
Stephen

4

V , 143 byte

ç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

Hãy thử trực tuyến!

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

Tôi đã viết điều này trước khi tôi nhận ra bạn có thể lấy đầu vào làm mã bưu chính. Tôi không chắc đó có thực sự ngắn hơn hay không :shrug:. Câu trả lời này sử dụng regex để tìm kiếm các trạng thái nhất định và sau đó thay đổi đầu vào thành một số nhất định nếu nó phù hợp. Tuy nhiên, khi số lượng trạng thái chúng tôi đã thử nghiệm tăng lên, tìm kiếm nhỏ nhất chúng tôi có thể sử dụng sẽ giảm xuống. Vì vậy, ví dụ, chúng tôi không thể tìm kiếm Cvì điều đó sẽ phù hợp ColoradoCalifornia. (Cũng như Conirectut và The Carolinas) Tuy nhiên, một khi chúng tôi đã thử nghiệm cho mọi trạng thái có nhiều hơn 3 biên giới, chúng tôi chỉ có thể tìm kiếm bắt đầu bằng C vì nó không thể khớp với trạng thái trước đó nữa.

Một vài trường hợp thử nghiệm có thể sai vì tôi không có thời gian để kiểm tra tất cả chúng. Hãy cho tôi biết nếu bạn tìm thấy bất kỳ đầu ra không chính xác. :)


3

JavaScript, 153 byte

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)

Biến chuỗi. Tôi chắc chắn có một cách tốt hơn để làm điều này mặc dù.

Nhờ một gợi ý từ ai đó từ Discord, đầu ra mặc định là 6, số lượng các trạng thái có viền phổ biến nhất. 183 byte đến 151 byte.

Một nhà bình luận đã chỉ ra rằng điều này không thành công cho AK và HI, vì vậy tôi đã thêm hai byte để khắc phục sự cố. 151 đến 153 byte.


1
Tôi khá chắc chắn rằng điều này không thành công AKHI0||6đánh giá là 6, đó là đầu ra không chính xác.
kamoroso94

@ kamoroso94 Tôi đã cập nhật mã của mình, nếu bạn nghĩ rằng có cách khắc phục tốt hơn hãy cho tôi biết.
Eli Richardson

3

05AB1E , 78 72 byte

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

Hãy thử trực tuyến!


.•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.

CHỈ này hoạt động vì thứ tự viết tắt trạng thái cho phép trạng thái NO xảy ra trong sự chồng chéo giữa các trạng thái:

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

Mất một lúc để có được sự sắp xếp đúng ... Sau đó, bằng cách chia nhỏ đầu vào và đếm khoảng trắng trong phần đầu tiên, chúng ta sẽ có kết quả chính xác.


Nếu tôi ăn cắp "mặc định là 6" từ các câu trả lời khác, tôi nhận được 65 byte:

05AB1E , 65 byte

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

Hãy thử trực tuyến!


Took awhile to get the arrangement right-> oh, tôi nghĩ rằng bạn có thể đã sao chép nó từ câu trả lời của tôi (nếu tôi đọc chính xác điều này)
Stephen

@Stephen Vâng, tôi đã không có ý tưởng từ bất kỳ bài đăng nào khác, nếu bạn nhìn vào "thuật toán băm sucky", tôi đã loay hoay với những ý tưởng ngẫu nhiên để băm trong một giờ rồi nghĩ về khoảng trống, thấy rằng tôi không thể đánh bại việc thực hiện cho dù tôi đã cố gắng thế nào.
Bạch tuộc ma thuật Urn

@ Bây giờ tôi đã đọc của bạn, tôi ước tôi cũng đã nghĩ về việc mặc định là 6 xD.
Bạch tuộc ma thuật Urn

1
Tôi đã không nghĩ về nó, tôi đã thấy nó trong câu trả lời này trước tiên, vì vậy hãy thoải mái lấy nó: P
Stephen


2

JavaScript (ES6), 195 byte

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

Một loạt các biểu thức chính quy, hoạt động trên tên đầy đủ của tiểu bang.

Các trường hợp thử nghiệm:


2

Thạch ,  61  59 byte

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

Một chương trình đầy đủ lấy tên trạng thái đầy đủ và in kết quả (dưới dạng liên kết đơn, nó sẽ trả về một danh sách chứa một số duy nhất hoặc số 6).

Hãy thử trực tuyến! hoặc xem một bộ thử nghiệm .

Làm sao?

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

là danh sách các danh sách các chỉ mục trang mã:

[[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]]

và được hiển thị như “ ... ‘dưới đây:

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 Excel, 177 154 147 byte

Hàm VBE ẩn danh nhận đầu vào, thuộc loại dự kiến Stringđại diện cho mã bưu chính của một tiểu bang, từ phạm vi [A1]và trả về một Integerđại diện cho số trạng thái giáp với trạng thái đó.

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)

Những phiên bản trước

154 byte:

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 byte:

[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)]

Định dạng cho dễ đọc

[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

Python 2, 363 218 byte

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)

Hãy bắt đầu với sự đơn giản câu trả lời mã hóa tối ưu hóa một chút. Lấy mã bưu chính làm đầu vào.

-145 byte nhờ bfontaine.


4
Bạn có thể lưu gần 100 byte bằng cách sử dụng dict(MO=8,TN=8,...)thay vì {'MO':8,'TN':8,...}. Sau đó, bạn có thể lưu gần 50 byte bằng cách sử dụng .get(a,6)và xóa các trạng thái giáp 6 trạng thái khác. Tôi có thể xuống tới 219 với hai thủ thuật đó.
bfontaine

@Mitch tiết kiệm thêm một số bằng cách sử dụng không gian thay vì .và làm split()(tôi nghĩ)
Stephen

@Mitch bạn có cần thời gian không? Có một phương pháp để chia một danh sách thành các nhóm 2?
Bạch tuộc ma thuật Urn

Tôi tin rằng bạn có thể tiết kiệm thêm một số byte bằng cách sử dụng dict((i[0]+i[1],int(i[-1])) for i in zip(*[iter("WA2WI4WV5FL2...")]*3)). Ngoài ra, bạn có thể rời intkhỏi đó nếu nó được phép có đầu ra dưới dạng một chuỗi.
Izaak van Dongen

Trên thực tế nếu bạn sử dụng giải nén bạn có thể làm dict((a+b,int(c)) for a,b,c in zip(*[iter("WA2WI4WV5...")]*3)). Xin lỗi, tôi hơi thiếu quyết đoán: D
Izaak van Dongen

1

PowerShell , 187 byte

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

Hãy thử trực tuyến!

Tôi chắc chắn có một cách tốt hơn để làm điều này, nhưng đây là cách tiếp cận tôi nghĩ ra.

Đưa đầu vào $avà sử dụng điều đó để có được sự .IndexOfxuất hiện của nó trong chuỗi dài các kết hợp trạng thái / đường viền. Lưu trữ vào $xvà chuỗi vào $btrong quá trình. Sau đó đi vào một ifcâu lệnh kiểm tra xem nó có tìm thấy sự trùng khớp hay không, và nếu vậy thì chỉ mục cho chữ số và sau đó exit. Mặt khác, chúng tôi là một trong những 6trạng thái hoặc AKhoặc HI, vì vậy chúng tôi thực hiện một số logic để xem liệu đó có phải $alà một trong các 0trạng thái hay không và trừ đi nếu cần thiết. Trong mọi trường hợp, điều đó còn lại trên đường ống và đầu ra là ẩn.


1

Trăn 3, 729 733 byte

Đưa đầu vào như một tên viết tắt bưu chính. Đây là nỗ lực đầu tiên của tôi trong một thử thách chơi gôn, và đây là khoảng thời gian ngắn nhất mà tôi nghĩ rằng tôi có thể có được với cách tiếp cận địa ngục này. Tôi biết nó rất lớn - hãy nghĩ về nó Tôi có lẽ đã tốt hơn với các if-elsetuyên bố, nhưng sau tất cả thời gian và nỗ lực đó, tôi đã phải đăng nó: D.

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

Tôi mới nhận ra rằng tôi đã lấy sự xa xỉ của một tên biến ba chữ cái - giảm 4 byte, 400 để đi!


Chào mừng đến với PPCG! Đôi khi các giải pháp đơn giản lại ngắn hơn, như được hiển thị bởi các câu trả lời khác của Python: P
Stephen

Vâng, tôi yêu tất cả những nỗ lực bạn bỏ ra, vì niềm vui tội lỗi của bạn là "làm cho mã của bạn ngắn gọn đến mức không thể thực hiện được", bạn sẽ phù hợp ngay.
Zacharý
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.