সংক্ষেপে মার্কিন যুক্তরাষ্ট্রের রাষ্ট্র!


50

ইনপুট হিসাবে বাম দিকে 50 টি মার্কিন রাষ্ট্রের নামের একটি দেওয়া , ডানদিকে দেখানো হিসাবে তার দুটি-অক্ষরের ডাক কোড আউটপুট করুন :

Alabama         AL
Alaska          AK
Arizona         AZ
Arkansas        AR
California      CA
Colorado        CO
Connecticut     CT
Delaware        DE
Florida         FL
Georgia         GA
Hawaii          HI
Idaho           ID
Illinois        IL
Indiana         IN
Iowa            IA
Kansas          KS
Kentucky        KY
Louisiana       LA
Maine           ME
Maryland        MD
Massachusetts   MA
Michigan        MI
Minnesota       MN
Mississippi     MS
Missouri        MO
Montana         MT
Nebraska        NE
Nevada          NV
New Hampshire   NH
New Jersey      NJ
New Mexico      NM
New York        NY
North Carolina  NC
North Dakota    ND
Ohio            OH
Oklahoma        OK
Oregon          OR
Pennsylvania    PA
Rhode Island    RI
South Carolina  SC
South Dakota    SD
Tennessee       TN
Texas           TX
Utah            UT
Vermont         VT
Virginia        VA
Washington      WA
West Virginia   WV
Wisconsin       WI
Wyoming         WY

বিধি

  • ইনপুট এবং আউটপুট উভয় ক্ষেত্রে সংবেদনশীল। আপনি অনেক না আউটপুট যেমন Alজন্য Alabama
  • আপনি ধরে নিতে পারেন উপরের 50 টি রাজ্যের নামের মধ্যে একটি ইনপুট।
  • আপনি ইন্টারনেট অ্যাক্সেস করতে পারবেন না বা বিল্ট-ইন স্টেট ডেটা ব্যবহার করতে পারবেন না (ম্যাথামেটিকা ​​আপনার দিকে তাকিয়ে)।

ইনপুট এবং আউটপুটগুলির পৃথক তালিকা পাওয়া যাবে এই স্নিপেটে (দয়া করে এটি চালাবেন না, এটি কেবল পোস্টটি সংকোচনের জন্য):

(নন-স্কোরিং) আপনি যদি District of Columbiaইনপুট হিসাবে এবং DCভার্জিন দ্বীপপুঞ্জ ইত্যাদি গ্রহণ করতে পারেন তবে ব্রাউনি পয়েন্ট করে

স্কোরিং

এটি , তাই প্রতিটি ভাষার বাইটের মধ্যে সংক্ষিপ্ততম কোডটি জয়ী

(মূলত ETHProductions দ্বারা প্রস্তাবিত )


11
Entity[a="AdministrativeDivision",{#,"UnitedStates"}]@EntityProperty[a,"StateAbbreviation"]&
কৌতুহলকারীদের জন্য

12
@ বেটাডেকে প্রশ্নগুলি যেগুলি অফ-টপিক হিসাবে বন্ধ রয়েছে তা ডুপ টার্গেটগুলি কার্যকর নয়।
মেগো

7
@ ডেভিডসি আপনি 20বাইটস সংরক্ষণ করতে পারেন : Entity["AdministrativeDivision",{#,"UnitedStates"}]@"StateAbbreviation"&:)
নেজেনিসিস

2
মার্কিন ডাকের সংক্ষিপ্তসারগুলির সম্পূর্ণ অফিসিয়াল তালিকায় অন্যান্য 12 দ্বি-চরিত্রের কোডগুলি অন্তর্ভুক্ত করার জন্য অতিরিক্ত ক্রেডিট অফার করুন: এএ (আর্মড ফোর্সেস আমেরিকাস), এই (আর্মড ফোর্সেস প্যাসিফিক), এএস (আমেরিকান সামোয়া), ডিসি (কলম্বিয়া জেলা), এফএম (মাইক্রোনেশিয়া সংযুক্ত স্টেটস), জিইউ (গুম), এমএইচ (মার্শাল দ্বীপপুঞ্জ), এমপি (উত্তর মেরিয়ানা দ্বীপপুঞ্জ), জনসংযোগ (পুয়ের্তো রিকো), পিডব্লু (পলাউ), ষষ্ঠ (ভিআরজি)
জো স্নাইডার

2
হ্যাঁ এই হল না একটি প্রতারিত।
ক্রিস্টোফার

উত্তর:


25

জাভাস্ক্রিপ্ট, 124 117 বাইট

(এইচডিডিকে ধন্যবাদ 7 বাইট সংরক্ষণ করা হয়েছে)

x=>/.+[A-Z]|A..[sz]k?|M.ss.s?|M[io]n?t?|Nev?|[AFIOUW][^o]|T..|.+/.exec(x)[0].replace(/(.).*(.)/,'$1$2').toUpperCase()

ব্যাখ্যা:

  • রেজিএক্সপ্যাক্স প্রথম এবং শেষ অক্ষরের সংক্ষেপণের দুটি অক্ষরের সাথে একটি মিল খুঁজে পায়
  • প্রথম অংশটি দুটিরও বেশি শব্দের সাথে রাজ্যের সাথে মেলে (কলম্বিয়া জেলা সহ)
  • দ্বিতীয় অংশ আলাস্কা এবং অ্যারিজোনার সাথে মেলে
  • তৃতীয় অংশ ম্যাসাচুসেটস, মিসিসিপি এবং মিসৌরির সাথে মেলে
  • চতুর্থ অংশ মিশিগান, মিনেসোটা এবং মন্টানার সাথে মেলে
  • পঞ্চম অংশ নেব্রাস্কা এবং নেভাদার সাথে মেলে
  • ষষ্ঠ অংশের সাথে মিলে বাকি সমস্ত রাজ্যগুলি তাদের প্রথম দুটি অক্ষরের সংক্ষিপ্ত আকারে আইওয়া বাদ দেওয়ার জন্য একটি বিশেষ কেস নিয়ে
  • সপ্তম অংশ তাদের প্রথম এবং তৃতীয় অক্ষরের সংক্ষিপ্তভাবে বাকী সমস্ত রাজ্যের সাথে মেলে
  • অষ্টম অংশ অন্য সমস্ত কিছুর সাথে মেলে, যা তাদের প্রথম এবং শেষ অক্ষরের সংক্ষিপ্তসার
  • তারপরে এটি কেবল সেই চিঠিগুলি কেটে ফেলা এবং বড় করে তোলার একটি মামলা
  • এছাড়াও পুয়ের্তো রিকো এবং আমেরিকান সামোয়া মেলে তবে গুয়াম, মারিয়ানা দ্বীপপুঞ্জ বা মার্কিন ভার্জিন দ্বীপপুঞ্জের সাথে নয়

বাহ, এই দুর্দান্ত! +1 টি!
NoOneIs এখানে

3
নিস! আরও কিছু সুযোগ: [A-Z]ইনপুটটি বৈধ হিসাবে পরিচিত বলে প্রাথমিকটি প্রয়োজন হয় না। আইওয়োয়া বিশেষ [AFIOUW][^o]কেসটি এটি বাদ দেওয়ার জন্য সংক্ষিপ্ত করা যেতে পারে , এটি ফাইনালের জন্য রেখে .+
এইচডিভি

1
আপনার রেজেক্স যন্ত্রপাতিটি আমার তুলনায় এতটা দক্ষ ... কাশ্মীরের সাথে আমার কাজটি করার একটি উপায় থাকত wish তবে এগুলি বিভিন্ন নীতিতে নির্মিত।
স্টিভ বেনেট

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

1
101: s=>s[0]+/.+[A-Zz]|Nev?|.*sk|M.ss.s?|M[io]n?t?|[AFIOUW][^o]|Te.|.+/.exec(s)[0].slice(-1).toUpperCase()আমরা 100 এ পেতে পারি? :)
স্টিভ

22

জাভাস্ক্রীপ্ট, 137 135 134 132 113 110 108 101 99 94 93 92 বাইট

এটি এইচপি উইলিয়ামস সমাধানের উপর ভিত্তি করে রেইগেক্সের বাইরে কিছু উন্নতি হয়েছে এবং এর মধ্যে কয়েকটা টুইট রয়েছে।

s=>s[0]+
/.*( .|z)|...s.s?|T..|M[i-t]+|[AFINOUW][^o]v?|.*/
.exec(s)[0].slice(-1).toUpperCase()

(কেবল পঠনযোগ্যতার জন্য লাইনব্রেকস)

রেজেক্সের জন্য ভাষ্য:

.*( .|z)|      // Two-or-three word states, plus Arizona
...s.s?|       // Mississippi, Missouri, Massachussetts, Alaska, and (non-harmfully) Kansas
M[i-t]+|       // Montana, Minnesota, Michigan
[AFINOUW][^o]v?|  // All the other first-two-letter states, avoiding Iowa, plus Nevada
T‌​..|           // Tennessee, Texas
.+             // Everything else is first-and-last

অর্থহীন বিকল্প রেজেক্স (একই দৈর্ঘ্য):

/...(a$|z|s.s?|.* .)|M[i-t]+|T..|[AFINOUW].v?|.*/  

ইতিহাস

94

s=>s[0]+/.*( .|z)|...s.s?|M[io]n?t?|[AFIOUWN][^o]v?|T..|.*/
.exec(s)[0].slice(-1).toUpperCase()

99

s=>s[0]+/.*( .|z|l.*k)|T..|M.ss.s?|M[io]n?t?|[AFIOUWN][^o]v?|.*/
.exec(s)[0].slice(-1).toUpperCase()

101

s=>s[0]+/.+[A-Zz]|Nev?|.*sk|M.ss.s?|M[io]n?t?|[AFIOUW][^o]|T‌​e.|.+/
.exec(s)[0].sl‌​ice(-1).toUpperCase(‌​)

108

 s=>s[0]+/MI(N|SSO|S)|[CDGHKLPV].*|.* .|.*[XZV]|.*?N[NTE]|.*(SK|D$|WA)|../
.exec(s.toUpperCase())[0].slice(-1)

110

s=>s[0]+/MI(N|SSO|S)|[CGHKLPV].*|.* .|.*[XZV]|.*?N[NTE]|.*(SK|[ED]$|WA)|../
.exec(s.toUpperCase())[0].slice(-1)

113

s=>s[0]+/^MI(N|SSO|S)|^[CGHKLPV].*|.*?( .|[XZV])|.*?N[NTE]|.*(SK|[ED]$|WA)|../
.exec(s.toUpperCase())[0].slice(-1)

132

s=>(S=s.toUpperCase(),' ._SSO_^MI[NS]_^[CGHKLPV].*_.V_N[TNE]_SK_[ED]$_WA_Z_X_..'
.split`_`.some(p=>s=S.match(p)),S[0]+s[0].slice(-1))

134

s=>' ._SSO_^MI[NS]_^[CGHKLPV].*_.V_N[TNE]_SK_E$_D$_WA_Z_X_..'.split`_`
.map(p=>s=(z=s.toUpperCase().match(p))?s[0]+z[0].slice(-1):s)&&s

135

s=>' ._SSO_^MI[NS]_LASK_^[CGHKLPV].*_NT_EN_[DE]$_WA_.[XVZ]_..'.split`_`
.map(p=>s=(z=s.toUpperCase().match(p))?s[0]+z[0].slice(-1):s)&&s

137

s=>' ._OWA_SSO_ONT_^MI[NS]_LASK_^[CGHKLPV].*_EN_[DE]$_.[XVZ]_..'.split`_`.
map(p=>s=(z=s.toUpperCase().match(p))?s[0]+z[0].slice(-1):s)&&s

এটি কেবল উন্মাদ, আমি আবার উত্সাহ দিতে পারতাম বলে আশা করি।
ইটিএইচ প্রডাকশনগুলি

এখন দেখবেন না! 99!
স্টিভ বেনেট

94. সম্পূর্ণ পাগল। আমি এই অপটিমাইজেশনটি আবিষ্কার করেছি ( ...s.s?মিসিসিপি, মিসৌরি, ম্যাসাচুসেটস এবং আলাস্কা ক্যাপচার করে) দুর্ঘটনাক্রমে। আমি প্রকৃতপক্ষে .*skখণ্ডটি অন্য কোথাও স্থানান্তরিত করার প্রক্রিয়াতে ছিলাম এবং পরীক্ষাগুলি দৌড়াতে এবং পাস করার সময় ঘটেছিল, যখন খণ্ডটি কোথাও উপস্থিত ছিল না। সবচেয়ে সহজ 5 চরিত্র লাভ!
স্টিভ বেনেট

বাহ, এবং আমি ঠিক বুঝতে পেরেছিলাম যে ...s.s?অজান্তে ক্যানসাসের সাথেও মিলছে, এবং অলৌকিকভাবে এখনও সঠিক ফলাফল দিচ্ছে।
স্টিভ বেনেট

এবং আরও একটি চরিত্র সঙ্গে M[onti]+। এত অদ্ভুত: যদি রাষ্ট্র এম দিয়ে শুরু হয়, তবে দ্বিতীয় অক্ষরটি কমপক্ষে একটি ও, এন, টি, বা i এর ক্রমতে সর্বশেষ। মিশিগান, মিনেসোটা বা মন্টানা দখল করার খুব অদ্ভুত উপায় way
স্টিভ বেনেট

20

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

s=>s[0]+'.KT..N.VEA.XVL.H.TZ.AA..I.EADATO.JTISRDIYOI.DALA.Y.KE.C.D.R.YAS.NM...C.L...N'[parseInt(s.split` `.join``,36)%359%248*8%99*3%83]

ডেমো


1
এই পদ্ধতিটি ব্যবহার করে কী সর্বোত্তম হতে হবে?
ASCII- কেবল

2
@ এএসসিআইআই-কেবল এটি সালিসী রেঞ্জগুলিতে জালিয়াতিযুক্ত, সুতরাং এটি কেবলমাত্র অনুকূল হওয়ার গ্যারান্টিযুক্ত X MOD[50-1000] MOD[50-1000] MOD[50-100]। কিন্তু .slice(1)ভুল ছিল। বর্তমানে পুরো স্ট্রিংয়ে আবার চলছে।
আর্নল্ড

2
আপনি কি কোনও নতুনকে ব্যাখ্যা করতে পারেন যা এটি করে?
হ্যাঙ্কক্রেকর্ডস

1
পছন্দ করুন (তবে আমি এখনই সীমিত ইন্টারনেট অ্যাক্সেস সহ একটি ট্রেনে আছি))
আর্নল্ড ২ul

1
আমার এখন 135!
স্টিভ বেনেট

17

জেলি , 75 বাইট

³Oḅ⁹%⁽qġ%14ị⁽"wB¤Ḥ
“¿ØƈṢḍw÷S=)µZṂ÷ĿæÆɱ»Ḳiµ%2+3¢⁸?
e“\B“½ƈN»ȧ5ȯÇ’
i⁶ȯÇ‘ịṭḢŒu

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

... বা একটি পরীক্ষা স্যুট দেখুন - নোট করুন এক সাথে একাধিক ইনপুটগুলির জন্য সম্পূর্ণ প্রোগ্রামটি চালানোর জন্য একটি ছোট পরিবর্তন আনতে হবে (আমি প্রোগ্রামের ইনপুট অ্যাটমটিকে সরিয়ে দিয়েছি, ³রেজিস্টার থেকে পুনর্বিবেচনার জন্য ®, একটি এবং রেজিস্টার সেট করলাম প্রতিটি রাজ্যের নাম ঘুরে)

কিভাবে?

ডাক কোডের দ্বিতীয় অক্ষরের জন্য ব্যবহারের জন্য সূচক গণনা করে, এটি প্রথম অক্ষরটিতে সংযোজন করে ফলাফলকে বড় বড় করে।

প্রথমে কোনও স্থানের অক্ষরের সূচকটি (বা 0 না পাওয়া গেলে) সন্ধান করে;

অন্যটি এটি আলাস্কা বা মিসৌরি কিনা পরীক্ষা করে (5 এর জন্য ফলন দেয় kবা o);

অন্য তালিকায় ইনপুট স্থিতির সূচকটি খুঁজে পান Arizona Minnesota Mississippi Nevada Montana Texas Tennessee(বা যদি 0 পাওয়া যায় না) - যদি তাই হয় তবে এটি সূচক মোড 2 প্লাস 3 (জন্য z n s v t x n) নেয়;

অন্য স্ট্রিংটিকে অর্ডিনালে রূপান্তরিত করে, ভিত্তি 256 থেকে রূপান্তর করে 29297 দ্বারা বিভাজনের পরে এর বাকী অংশটি খুঁজে পায় এবং 14 এর সাথে বিভাজনের পরে এর বাকী অংশটি খুঁজে পায় এবং সেইটিকে 9620 এর বাইনারি উপস্থাপনায় সূচক হিসাবে ব্যবহার করে - ফলন 0 দেয় যে রাষ্ট্রগুলি তাদের চূড়ান্ত চিঠিটি ব্যবহার করে এবং তাদের দ্বিতীয় অক্ষর ব্যবহার করে তাদের জন্য 2।

প্রথম প্রথম কেস বাদে সমস্তগুলি বাড়ানো হয়, এবং ফলস্বরূপ মান হ্রাস করা হয় (একের সাথে পাওয়া স্পেস সূচকে উচ্চতর করে)।

i⁶ȯÇ‘ịṭḢŒu - Main link: state string
 ⁶         - space character
i          - first index (of a space character in the state) or 0 if not found  (n-1 or 0)
   Ç       - call link 3 as a monad  (get n-1 in other cases)
  ȯ        - logical or  (yielding n-1)
    ‘      - increment   (yielding n)
     ị     - index into the state string (get the nth character)
       Ḣ   - head the state string (get the first character)
      ṭ    - tack
        Œu - convert to uppercase
           - implicit print

e“\B“½ƈN»ȧ5ȯÇ’ - Link 3: n-5 or ... : state string
 “\B“½ƈN»      - ["Alaska","Missouri"]
e              - exists in? (1 if so, 0 if not)
          5    - 5
         ȧ     - logical and
            Ç  - call link 2 as a monad
           ȯ   - logical or
             ’ - decrement

“¿ØƈṢḍw÷S=)µZṂ÷ĿæÆɱ»Ḳiµ%2+3¢⁸? - Link 2: n = 3 or n = 4 or ... : state string
“¿ØƈṢḍw÷S=)µZṂ÷ĿæÆɱ»           - "Arizona Minnesota Mississippi Nevada Montana Texas Tennessee"
                    Ḳ          - split at spaces
                     i         - first index of state string in that list or 0
                      µ        - monadic chain separation (call that i)
                             ? - if: 
                            ⁸  -   link's left argument, i
                               - then:
                       %2      -   mod 2
                         +3    -   plus 3  - odd entries to 4: AriZona, MisSissippi, MonTana, TenNessee
                               -            even entries to 3: MiNnesota, NeVada, TeXas
                               - else:
                           ¢   -   call link 1 as a nilad

³Oḅ⁹%⁽qġ%14ị⁽"wB¤Ḥ - Link 1 ...n=2 or n=0: no arguments
³                  - program's 1st input    e.g. Iowa          or Ohio
 O                 - cast to ordinals            [73,111,119,97]  [79, 104, 105, 111]
   ⁹               - 256
  ḅ                - convert from base           1232041825       1332242799
     ⁽qġ           - 29487
    %              - modulo                      15991            20139
        %14        - modulo 14                   3                7
                ¤  - nilad followed by link(s) as a nilad:
            ⁽"w    -   9620                     V       V
               B   -   convert to binary = [1,0,0,1,0,1,1,0,0,1,0,1,0,0]
           ị       - index into                  0                1
                 Ḥ - double                      0                2
                   -   ...0th index of Iowa is 'a', 2nd of Ohio is 'h'

1
এটি আমি দীর্ঘতম জেলি দেখেছি =)
সিয়ার্ড কোইনারিংহাইং

11

পাইথন 2 , 191 বাইট

lambda s:s[0]+("KZD"*5+"HNTD"*5+"AYY"*4+"__L_O_VTA_I__A_T_RS_KA__S_"+"MOO"*5+"I_C_"+"AE"*6+"_I_D__A_"+"EDL"*5+"HV_A"+"IR"*7+"XC"*6+"E____N__YJ_YT___L")[reduce(lambda a,x:a+ord(x)^24,s,0)%174]

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

সংক্ষেপণের দ্বিতীয় অক্ষরটি সন্ধান করতে একটি সাধারণ হ্যাশ ফাংশন ব্যবহার করে।


11

পাইথন 2, 94 90 বাইট

lambda s:s[0]+s[(19**9*0x4710b8f6019c1b61deca10eef13b1>>hash(s)%8199472%52*3&7)+1].upper()

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

(কেবল পাইথন 2 কারণ পাইথন 3 হ্যাশ স্থিতিশীল নয় এবং আপনি কোনও স্ট্রিং এটি বাইটে পরিণত না করে হ্যাশ করতে পারবেন না))

সমস্ত 50 টি রাজ্যের সাথে কাজ করে, পাশাপাশি কলম্বিয়া এবং পুয়ের্তো রিকো বোনাস জেলা হিসাবে।

বেস -36: এ নম্বর লিখে একটি বাইট সংরক্ষণ করা সম্ভব হবে int("5clu7x0aixb0pelmpugv5iiibphrpf",36)আমি আরও সৃজনশীল সমাধান সম্পর্কে ভাবতে পারি কিনা তা দেখার জন্য অপেক্ষা করছি।

হালনাগাদ:

যেহেতু হ্যাশটিতে 12 অব্যবহৃত অঙ্কের অবস্থান রয়েছে, তাই 2 টি 36 সম্ভাব্য সংখ্যা রয়েছে যা কাজ করবে। এটি বিশ্বাস করা যুক্তিসঙ্গত বলে মনে হয়েছিল যে তাদের মধ্যে একটির একটি বৃহত্তর ব্যয়কারীর সাথে প্রধান উপাদান রয়েছে। যে কোনও প্রদত্ত প্রধান এবং ঘাতক হিসাবে, একটি মান সন্ধান করা বেশ দ্রুত; আমি 19 9 এর একটি ফ্যাক্টর সহ একটি সন্ধান করতে পরিচালিত করে চারটি বাইট দ্বারা সংখ্যাটি উপস্থাপনের জন্য প্রয়োজনীয় অভিব্যক্তিটির আকার হ্রাস করেছিলাম ।

এটি মূলত আমার সি উত্তর হিসাবে একই পদ্ধতি কিন্তু পাইথন ব্যবহার করে। যেহেতু বেস হ্যাশ ফাংশনটি আলাদা, আমাকে একটি আলাদা হ্রাস ফাংশনটি সন্ধান করতে হবে, যা মোড ৫ 54 এর পরিবর্তে মোড ৫২ এ পরিণত হয়েছে But তবে সি-এর সবচেয়ে বড় সঞ্চয়টি ভেক্টরকে এনকোড করার জন্য বিগাইনগাম ব্যবহার করার সম্ভাবনা থেকে এসেছে এবং অবশ্যই পাইথনের স্ট্যান্ডার্ডটি মনে হয় যে সম্পূর্ণ প্রোগ্রামের পরিবর্তে ল্যাম্বডা আক্ষরিক ব্যবহার করা ঠিক আছে ok


9

রেটিনা , 113 81 80 77 70 68 বাইট

M1!`.+[A-Zz]|...s.s?|M[io]n?t?|[AFIOUWN][^o]v?|T..|.*
\B.*(?=.)

T`l`L

এটি অনলাইন চেষ্টা করুন! সমস্ত 51 পরীক্ষার কেস অন্তর্ভুক্ত করে। @ জর্গহালসারম্যানের রেইগেক্সটি বরাদ্দ করে 32 বাইট সংরক্ষণ করা হয়েছে যা দ্বিতীয় চিঠিটি খুঁজে পেয়েছে (ডিসি সমর্থন করার জন্য একটি টুইটের সাথে; সম্পাদনা: @ জার্গহ্লসারম্যানকে 1 বাইট সংরক্ষণ করে) @ এইচপিউইলিয়ামের উত্তরে তার মন্তব্য থেকে @ স্টিভবেনেটের রিজেক্সে স্যুইচ করে 3 বাইট সংরক্ষণ করা হয়েছে। সংরক্ষিত 7 @SteveBennett 9 বাইট ধন্যবাদ আবার। অন্য অক্ষরগুলি মুছে ফেলা হয় এবং স্ট্রিং বড়হাতে।


খুব সুন্দর, আপনি পুরোপুরি অপসারণযোগ্য স্ট্রিংয়ের সেট পেতে পারেন বলে ভাবেননি।
কলসডাব্লু

@ কননরএলএসডাব্লিউটি eছিল সবচেয়ে ঝামেলাজনক , সত্যই।
নীল

@ জার্গএলসারম্যান প্রত্যাবর্তনের পক্ষে ধন্যবাদ!
নিল

@ জার্গহালসারম্যান ওহ, সুতরাং আমি কি তবে অন্য একটি বাইট সংরক্ষণ করতে সক্ষম হব?
নীল

1
অপেক্ষা করুন, ইন্ডিয়ানা নেই আইডি হয়ে। আপনি সম্ভবত এটির পরে $ যোগ করে এটি ঠিক করতে পারেন d। (আপনি স্বয়ংক্রিয় পরীক্ষার ব্যবহার করতে চাইতে পারেন - আমার কাছে একটি স্ক্রিপ্ট রয়েছে যা নিয়মিতভাবে সমস্ত 50 টি কেস পরীক্ষা করে থাকে))
স্টিভ বেনেট

8

পিএইচপি> = 7.1, 113 বাইট

<?=($a=$argn)[0],ucfirst(preg_match('#[vxz]| .|owa|lask|[CGHKLPV].*|ssi?.|n(n|t|[de]$)#',$a,$t)?$t[0][-1]:$a[1]);

অনলাইন সংস্করণ

স্ট্রাইকগুলি আগের শুরুর আগে ম্যাচের মধ্য দিয়ে match

([vxz])অ্যারিজোনা, নেভাডা, নিউ মেক্সিকো, পেনসিলভেনিয়া, টেক্সাস,

(.) (আগে একটি স্থান) নিউ হ্যাম্পশায়ার, নিউ জার্সি, নিউ মেক্সিকো, নিউ ইয়র্ক, নর্থ ক্যারোলিনা, নর্থ ডাকোটা, রোড আইল্যান্ড, সাউথ ক্যারোলিনা, সাউথ ডাকোটা, ওয়েস্ট ভার্জিনিয়ার সাথে মিলছে

[CGHKLPV].*(.)ক্যালিফোর্নিয়া, কলোরাডো, কানেকটিকাট, জর্জিয়া, হাওয়াই, ক্যানসাস, কেনটাকি, লুইসিয়ানা, নিউ হ্যাম্পশায়ার , নর্থ ক্যারোলিনা, পেনসিলভেনিয়া, দক্ষিণ ক্যারোলিনা , ভার্মন্ট, ভার্জিনিয়া, পশ্চিম ভার্জিনিয়া

ow(a) আইওয়া মিল

las(k) আলাস্কার সাথে ম্যাচ

ssi?(.)ম্যাসাচুসেটস, মিসিসিপি, মিসৌরি, টেনেসির সাথে মেলে

n(n|t|[de]$)কানেক্টিকাট, কেন্টাকি, মেইন, মেরিল্যান্ড, মিনেসোটা, মন্টানা, পেনসিলভেনিয়া, রোড আইল্যান্ড, টেনেসি, ভার্মন্টের সাথে ম্যাচগুলি

এই রাজ্যের সাথে কোনও মিল নেই তাই আমরা আলাবামা, আরকানসাস, ডেলাওয়্যার, ফ্লোরিডা, আইডাহো, ইলিনয়, ইন্ডিয়ানা, মিশিগান, নেব্রাস্কা, ওহিও, ওকলাহোমা, ওরেগন, উটাহ, ওয়াশিংটন, উইসকনসিন, উইমিং

আমি প্রথমবারের ?| সাথে এই রেজেক্স সাবপ্যাটারটি ব্যবহার করছি এতে একটিতে ব্যাকরেফারেন্স সংরক্ষণ করতে দেয়।

কলম্বিয়া জেলা সমর্থন করুন

+3 বাইট (.)দিয়ে প্রতিস্থাপন করুন([^o])

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

পিএইচপি, 150 বাইট

<?=($t=preg_replace("#.\K\w+ |las|ri|nec|eorgi|awa|ow|[aio]ni?|e(?=n|v|x)|ntuck|ouisi|a?in|arylan|issi?|nnsylv|erm|irg#","",$argn))[0],ucfirst($t[1]);

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


3
এর n|t|চেয়ে বাইট কি খাটো নয় [nt]|?
নীল

@ নিল হ্যাঁ এটি আমি এটা বুঝতে পারি না। আপনাকে ধন্যবাদ
Jurg Hülsermann

7

পিএইচপি, 887 854 বাইট

<?=array_combine(['Alabama','Alaska','Arizona','Arkansas','California','Colorado','Connecticut','Delaware','Florida','Georgia','Hawaii','Idaho','Illinois','Indiana','Iowa','Kansas','Kentucky','Louisiana','Maine','Maryland','Massachusetts','Michigan','Minnesota','Mississippi','Missouri','Montana','Nebraska','Nevada','New Hampshire','New Jersey','New Mexico','New York','North Carolina','North Dakota','Ohio','Oklahoma','Oregon','Pennsylvania','Rhode Island','South Carolina','South Dakota','Tennessee','Texas','Utah','Vermont','Virginia','Washington','West Virginia','Wisconsin','Wyoming'],['AL','AK','AZ','AR','CA','CO','CT','DE','FL','GA','HI','ID','IL','IN','IA','KS','KY','LA','ME','MD','MA','MI','MN','MS','MO','MT','NE','NV','NH','NJ','NM','NY','NC','ND','OH','OK','OR','PA','RI','SC','SD','TN','TX','UT','VT','VA','WA','WV','WI','WY'])[$argv[1]];

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

প্রথম টাইমার, হুর!


1
অ্যারেতে একটু গল্ফ করা এইভাবে স্থান সহ মানগুলি বা যেখানে দ্বিতীয় বর্ণটি সঠিকভাবে সরানো হয়েছে। এবং স্যান্ডবক্স.অনলাইনফ্পফিউশনস$argv[1]$argn
জার্গ হালসারম্যান

@ জার্গহেলসারম্যান অনেক ধন্যবাদ! আমি আপনার উত্তরগুলি এখানে কোডগল্ফে সত্যিই উপভোগ করছি php!
ইভানকা টোডোরোভা

আমি এখানকার অন্যান্য লোকের বিরুদ্ধে কেবল একটু হালকা light কেউ উন্নতি পেলে শেখার প্রচেষ্টাটি ভাল। আমি আশা করি আপনি ভবিষ্যতে আরও প্রশ্নের উত্তর দিন
Jgrg Hülsermann

7

সি, 945 937 718 711 660 616 বাইট

219 বাইট সংরক্ষিত হয়েছে কেবলমাত্র ASCII- এর জন্য ধন্যবাদ।

struct{int*a,b;}m[]={"laba",76,"lask",75,"rizo",90,"rkan",82,"alif",65,"olor",79,"onne",84,"elaw",69,"lori",76,"eorg",65,"awai",73,"daho",68,"llin",76,"ndia",78,"owa",65,"ansa",83,"entu",89,"ouis",65,"aine",69,"aryl",68,"assa",65,"ichi",73,"inne",78,"issi",83,"isso",79,"onta",84,"ebra",69,"evad",86,"ew H",72,"ew J",74,"ew M",77,"ew Y",89,"orth",67,"orth",68,"hio",72,"klah",75,"rego",82,"enns",65,"hode",73,"outh",67,"outh",68,"enne",78,"exas",88,"tah",84,"ermo",84,"irgi",65,"ashi",65,"est ",86,"isco",73,"yomi",89};
i;char b[99];main(){gets(b);putchar(*b);for(;m[i].a;i++)if(!strncmp(m[i].a,b+1,4))puts(&m[i].b);}

অপ্রয়োজনীয় নিউলাইন, কেবল প্রদর্শনের উদ্দেশ্যে। রাষ্ট্রকে ইনপুট হিসাবে নেয়। এটি অনলাইন চেষ্টা করুন!

কিভাবে এটা কাজ করে:

  • struct{int*a,b;}m[]=...mদুটি মান সহ একটি মানচিত্র ঘোষণা করে - একটি চার-বাইট স্ট্রিং এবং একটি অক্ষর। এটি তুলনা লুপটিতে ব্যবহৃত হয়, যা char*aমানচিত্রে পঞ্চম সূচকের মধ্য দিয়ে দ্বিতীয়টির তুলনা করে ।
  • gets(b)একটি স্ট্রিং পড়ে b। এটি সংক্ষেপে রাজ্য হবে।
  • putchar(*b) স্ট্রিংয়ের প্রথম অক্ষরটি মুদ্রণ করে, যেহেতু প্রতিটি সংক্ষেপণ রাষ্ট্রের প্রথম অক্ষর দিয়ে শুরু হয়।
  • for(;m[i].a;i++)মানচিত্রের প্রতিটি মান দিয়ে লুপ করে। (এটি সংক্ষিপ্ত হতে সক্ষম হতে পারে))
  • if(!strncmp(m[i].a,b+1,4))বর্তমান মানচিত্রের মানটিকে দ্বিতীয়টির সাথে দ্বিতীয়টির সাথে তুলনা করে b(সংক্ষেপে রাজ্য)। এটি হ'ল একমাত্র পার্থক্য প্রথম পাঁচটি অক্ষরে, তবে আমরা ইতিমধ্যে প্রথম অক্ষরটি মুদ্রণ করেছি।
  • puts(&m[i].b); সংক্ষিপ্তসার দ্বিতীয় অক্ষর (যদি বর্তমান মানচিত্রের মানের সাথে রাষ্ট্রের নাম মেলে) এবং একটি নতুন লাইন মুদ্রণ করে।

এটি উত্তর * / দক্ষিণ * রাজ্যগুলির জন্য ভুল আউটপুট উত্পাদন করে বলে মনে হচ্ছে।
ফেলিক্স ডমব্যাক 26'17

6

সি, 148 141 বাইট

main(){char s[99];gets(s);printf("%c%c\n",*s,s["-2-1--561-1-62--642138364---4142--1416--67-7131-111-7-246"[*(int*)(s+1)%663694%57]-48]&95);}

*(int*)(s+1)ইনপুটটির পঞ্চম চরিত্রের মধ্য দিয়ে দ্বিতীয়টিকে পূর্ণসংখ্যা হিসাবে বিবেচনা করে; সেই পূর্ণসংখ্যার পরে হ্যাশ ব্যবহার করে 0-56 এ প্রবেশ করা হয় i%663694%57। হ্যাশ মানটি তখন অফসেটের একটি ভেক্টরে দেখানো হয় যা সংক্ষেপের দ্বিতীয় অক্ষরের অবস্থানকে উপস্থাপন করে। আমি সেই বিশেষ চারটি বাইট বেছে নিয়েছি কারণ (1) মিসৌরি এবং মিসিসিপি প্রথম পঞ্চম চরিত্রের মধ্যে পৃথক এবং (2) কিছু রাজ্যের সিতে কেবলমাত্র চারটি অক্ষর থাকে আপনি NUL টার্মিনেটর বাইট ব্যবহার করতে পারেন, তবে এর বাইরে কিছুই নির্ভরযোগ্য নয় reliable (এটি উভয় উত্তরকে একই মান এবং একই সাথে উভয় দক্ষিণে হ্যাশ করেছে But তবে এটি কোনও বিষয় নয় কারণ এই সমস্তটির জন্য সম্পর্কিত অফসেটটি 6 is)

যেমনটি ঘটে, সেই নির্দিষ্ট হ্যাশটি কলম্বিয়া জেলা, পুয়ের্তো রিকো এবং "ভার্জিন দ্বীপপুঞ্জ" এর সংক্ষিপ্তসারগুলির দ্বিতীয় অক্ষরের জন্য সঠিক অবস্থান অর্জন করেছে ("মার্কিন ভার্জিন দ্বীপপুঞ্জ" হিসাবে নয়, সেইভাবে টাইপ করা হয়েছে, কারণ অ্যালগরিদম জোর দিয়ে বলেছে যে প্রথম সংক্ষিপ্তসার অক্ষর নামের প্রথম অক্ষর হতে হবে)।

663694 এবং 57 টি ধ্রুবক একটি স্বয়ংক্রিয় পরীক্ষার সাথে পাওয়া গেছে; 57 হ'ল আমি সবচেয়ে ছোট হ্যাশ রেঞ্জটি পেয়েছি। (প্রথম সংস্করণটি 380085 এবং 63 ব্যবহার করেছে, তবে আমি যখন পরীক্ষার পরিসরটি প্রসারিত করেছি তখন আমি নতুনটি খুঁজে পেয়েছি)) মনে হচ্ছে "নামের শেষ অক্ষরটি ব্যবহার করার জন্য" কোড যুক্ত করা থাকলে কিছুটা ছোট হ্যাশ উপস্থিত রয়েছে; দুর্ভাগ্যক্রমে, শেষ অক্ষরটি নির্বাচনের জন্য সি সিনট্যাক্স এটিকে সহায়ক করে তুলতে খুব শব্দযুক্ত।

এখানে কেবল 8 টি পৃথক অফসেট রয়েছে, তাই এন্ট্রি প্রতি তিনটি বিট সহ তারা 171-বিট (3 * 57) লক লুক টেবিলের মধ্যে সংরক্ষণ করতে পারত। তবে প্রোগ্রামগুলিতে সেই বিটগুলি দক্ষতার সাথে sertোকানোর কোনও উপায় আমি ভাবতে পারি নি। হেক্স-এনকোডিংয়ের জন্য প্রতি বিট প্রতি বিট প্রায় একটি অক্ষর, 0xউপসর্গের প্রয়োজন হবে। আমি 151 বাইটের চেয়ে আরও ভাল করতে পারিনি, যা স্ট্রিং সংস্করণের চেয়ে দীর্ঘ longer যদি 171 বিটগুলি কোনওভাবে কাঁচা অক্টেট হিসাবে sertedোকানো যেতে পারে তবে তারা 22 বাইট দখল করবে, তাই এর সমাধান হতে পারে, তবে একটি ফাইল পড়া জটিল।


4

আসলে , 181 বাইট

2"OHCALAGAMAWVFLNVILMNMOMIRINCDEMTMEINWANYTXORNEOKIDAZNMUTNDMDVAKYSDPAARWYNHIAMSALNJAKTNHIKSVTWICOSCCT"╪"âäà♠îÉæô↨→←∟♣áíå*,▓/12│┤94▼╛?DE╞G╚╠╬ST╒WXßb;Θoq╙|⌂"♂┘Z⌠i≈┐⌡MXO;rR5♀ⁿ*:236@%└

এই সমাধানটি উদ্ধৃত স্ট্রিং হিসাবে ইনপুট আশা করে।

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

ব্যাখ্যা

এই দ্রবণটি আমার পাইথন 3 সমাধান হিসাবে একই হ্যাশিং কৌশল ব্যবহার করে । বংশবৃদ্ধির জন্য, আমি কীভাবে হ্যাশ গণনা করা হয়েছে এবং কেন এটি বেছে নেওয়া হয়েছে তার ব্যাখ্যা বাদ দিতে যাচ্ছি (যদি আপনি কিছুটা চান তবে অন্য উত্তরটি পড়ুন)।

এছাড়াও সংক্ষিপ্তসার জন্য, আমি খুব দীর্ঘ স্ট্রিংয়ের বিষয়বস্তুগুলি রেখে যাব, অন্যথায় ব্যাখ্যাটি অপঠনযোগ্য হবে।

2"..."╪"..."♂┘Z⌠i≈┐⌡MXO;rR5♀ⁿ*:236@%└
2"..."╪                                state abbreviations (push the long string, split into length-2 chunks)
       "..."♂┘                         hash values for the state names (a string of CP437-encoded characters, converted to their CP437 ordinals)
              Z                        zip the two lists
               ⌠i≈┐⌡M                  for each pair:
                i                        flatten the pair
                 ≈                       convert hash value to int
                  ┐                      store abbreviation at the register numbered by the hash value
                     X                 discard the now-empty list
                      O                convert input string to list of ASCII ordinals
                       ;rR             range(len(ordinal_list)), reversed
                          5♀ⁿ          5**i mapped over that range
                             *         dot product of powers of 5 and ordinal list
                              :236@%   mod by 236
                                    └  push value in that register

3

পাইথন 3 , 230 বাইট

lambda s:chr(s[0])+'IA%%L!NOI!M%!E.N!Y.XR.Z$D.I!.D$DA.D%!.HA!LJ%.N%‌​$T.I%!C!T!.HAAT$.A!.‌​VL.V%$CE%%AEK%.T$!.Y‌​.A!.R.Y$O.S%!.K$!.S'‌​.replace('%','$$').r‌​eplace('$','!!').rep‌​lace('!','..')[sum(c‌​*5**i for i,c in enumerate(s[::-1]))%236-5]

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

বাইটস অবজেক্ট (ইউনিকোড স্ট্রিংয়ের পরিবর্তে বাইট স্ট্রিং) হিসাবে ইনপুট প্রত্যাশিত।

একটি জালিয়াতি পরিমাণ বাইটের জন্য জনাথন অ্যালানকে ধন্যবাদ

ব্যাখ্যা

প্রতিটি রাষ্ট্রের নামটি aহ্যাশ প্রয়োগ করে একটি পূর্ণসংখ্যার সাথে হ্যাশ করা হয় a = sum(o*5**i) % 236(যেখানে oকোনও চরিত্রের ASCII অর্ডিনাল থাকে এবং iএটি স্ট্রিংয়ের সূচক হয়, শেষ থেকে গণনা করা হয়)। মডুলাসটি 236বেছে নেওয়া হয়েছিল কারণ এটি ক্ষুদ্রতম মডুলাস যা 50 টি মার্কিন রাষ্ট্রের নামের জন্য সমস্ত হ্যাশ মানকে পৃথক করে তোলে। এই হ্যাশগুলি তারপরে রাষ্ট্রের সংক্ষেপণগুলিতে ম্যাপ করা হয় এবং ফলস্বরূপ অভিধান (স্ট্রিং প্রতিস্থাপন ব্যবহার করে সংক্ষিপ্ত) ব্যবহৃত হয় একটি রাষ্ট্রের নাম (অ্যাপ্রোপিয়েট কীটি পাওয়ার জন্য হ্যাশিং) দিয়ে সংক্ষিপ্ত বিবরণটি দেখতে look


এর সাথে 179 বাইট সংরক্ষণ করুনlambda s:chr(s[0])+'.....IA................L..NOI..M..........E.N..Y.XR.Z....D.I...D....DA.D...........HA..LJ.........N............T.I..........C..T...HAAT.....A...VL.V............CE................AEK.........T.......Y.A...R.Y....O.S...........K.......S'[sum(c*5**i for i,c in enumerate(s[::-1]))%236]
জোনাথন অ্যালান

... এবং এর সাথে আরও একটি 51lambda s:chr(s[0])+'IA%%L!NOI!M%!E.N!Y.XR.Z$D.I!.D$DA.D%!.HA!LJ%.N%$T.I%!C!T!.HAAT$.A!.VL.V%$CE%%AEK%.T$!.Y.A!.R.Y$O.S%!.K$!.S'.replace('%','$$').replace('$','!!').replace('!','..')[sum(c*5**i for i,c in enumerate(s[::-1]))%236-5]
জোনাথন অ্যালান

আমি আশ্চর্য হয়েছি যে পিছনের দিকে গণনা করা হ্যাশ ফাংশনের চেয়ে কম বাইট ব্যয় করে যা সামনের দিকে গণনা করে - তবে আমি সামান্য খেলায় একটিও পাই না
ক্রিস এইচ

1
@ ক্রিশ্হ আমি ভেবেছিলাম আমি একটি পেয়েছি তবে সংকীর্ণ স্ট্রিং বেশি ব্যয়বহুল।
মেগো

2

রুবি, 106 103 বাইট

->s{s[0]+(s=~/ /?$'[0]:s[(j="()6>P_ac;?.O}AFLKMrS".index((s.sum%136%95+32).chr))?j>7?j/4:-1:1]).upcase}

যদি ইনপুটটিতে কোনও স্থান থাকে তবে দ্বিতীয় আউটপুট বর্ণটি স্থানটির পরে এক হয়। অন্য ...

সূত্র অনুসারে যেকোন অক্ষরটি পাওয়ার জন্য ইনপুটটিতে সমস্ত অক্ষরের যোগ হ্যাশ করুন যার সূত্র অনুসারে ম্যাজিক স্ট্রিংয়ের ইনডেক্সটি ইনপুট স্ট্রিংয়ের দ্বিতীয় আউটপুট বর্ণের সূচি নির্দেশ করে j>8?j/4:-1(-1 অর্থ শেষ।)। যদি হ্যাশ এমন একটি অক্ষর দেয় যা যাদু স্ট্রিংয়ের মধ্যে না থাকে তবে দ্বিতীয় বর্ণটি ইনপুটটির দ্বিতীয় বর্ণ।

যাদু স্ট্রিংয়ের ব্যাখ্যা হিসাবে, হ্যাশ অক্ষর এবং চিঠি সূচকগুলি তারা এনকোড করে নীচে রয়েছে। নোট করুন যে ডেলাওয়্যার দ্বিতীয় অক্ষরটি করলেও উপস্থিত হয় - এটি হ্যাশ কোড কেনটুকির সাথে সংঘর্ষের কারণ। ভাগ্যক্রমে ডেলাওয়্যারের শেষ চিঠিটি দ্বিতীয়টির মতোই।

Letter(index)
Last  (-1)  (-MD    )-VA    6-GA-LA  >-DE-KY    P-PA    _-CT    a-KS    c-VT
3rd    (2)  ;-TN    ?-MN    .-TX     O-NV
4th    (3)  }-MS    A-IA    F-MT     L-AZ
5th    (4)  K-MO    M-AK    r-ME     S-HI 

পরীক্ষা প্রোগ্রামে অসম্পূর্ণ

a="Alabama
Alaska
Arizona
Arkansas
California
Colorado
Connecticut
Delaware
Florida
Georgia
Hawaii
Idaho
Illinois
Indiana
Iowa
Kansas
Kentucky
Louisiana
Maine
Maryland
Massachusetts
Michigan
Minnesota
Mississippi
Missouri
Montana
Nebraska
Nevada
New Hampshire
New Jersey
New Mexico
New York
North Carolina
North Dakota
Ohio
Oklahoma
Oregon
Pennsylvania
Rhode Island
South Carolina
South Dakota
Tennessee
Texas
Utah
Vermont
Virginia
Washington
West Virginia
Wisconsin
Wyoming".split($/)

f=->s{                                                            #String argument s.
  s[0]+(                                                          #Return character s[0] +
    s=~/ /?$'[0]:                                                 #if s contains a space, 1st character after space, ELSE
      s[(j="()6>P_ac;?.O}AFLKMrS".index((s.sum%136%95+32).chr))?  #if (sum of ascii codes, mod 136 mod 95 +32).chr in the magic string
        j>7?j/4:-1:                                                 #return s[j/4] if j>7 else return s[-1] ELSE
      1]                                                          #if not in the magic string, return s[1].
  ).upcase                                                        #Convert the second character to uppercase if needed.
}


a.map{|i|p [i,f[i]]}

2

/// , 619 608 বাইট

/2/~M//@/~South //1/~North //!/~New //~/\/\///Alabama/AL~Alaska/AK~Arizona/AZ~Arkansas/AR~California/CA~Connecticut/CT~Delaware/DE~Florida/FL~Georgia/GA~Hawaii/HI~Idaho/ID~Illinois/IL~Indiana/IN~Iowa/IA~Kansas/KS~Kentucky/KY~Louisiana/LA2aine/ME2aryland/MD2assachusetts/MA2ichigan/MI2innesota/MN2ississippi/MS2issouri/MO2ontana/MT~Nebraska/NE~Nevada/NV!Hampshire/NH!Jersey/NJ!Mexico/NM!York/NY1Carolina/NC1Dakota/ND~Ohio/OH~Oklahoma/OK~Oregon/OR~Pennsylvania/PA~Rhode Island/RI@Carolina/SC@Dakota/SD~Tennessee/TN~Texas/TX~Utah/UT~Vermont/VT~Virginia/VA~Washington/WA~West Virginia/WV~Wisconsin/WI~Wyoming/WY/

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

যেহেতু /// ইনপুট নেওয়ার অন্য কোনও উপায় নেই, তাই এটি প্রোগ্রামের শেষে যায়। প্রোগ্রামে কাঙ্ক্ষিত ইনপুটটি কেবল যুক্ত করুন।

@ স্টেভেননেট দ্বারা প্রস্তাবিত হিসাবে আরও প্রতিস্থাপন করে 11 বাইট সংরক্ষণ করা হয়েছে


সম্ভবত এমন কিছু নিদর্শন রয়েছে যা আপনি একবারে একাধিকবার প্রতিস্থাপন করতে পারবেন, যেমন "নতুন" এবং "অকোটা"। বিরক্তিকর যে আপনি রাষ্ট্রের নামের বিভাগগুলি সরিয়ে দেওয়ার মতো বেশি স্মার্ট করতে পারবেন না, কারণ বাকী অক্ষরটিকে বড় হাতের কাছে রূপান্তর করা এত ব্যয়বহুল ...
স্টিভ বেনেট

@ স্টিভেনেট সম্পাদিত, ধন্যবাদ!
কমরেড স্পার্কলপনি


1

TAESGL , 386 বাইট

B=«ōďā,AL,ņćđ,AK,ķċđ,AZ,ćōē,AR,ďċđ,CA,ĭāď,CO,ŕĭ,CT,ćđēą,DE,ĕŕ,FL,īĭ,GA,ńāē,HI,ćĉďą,ID,ĭċď,IL,ľđā,ţ,ńĕĕ,IA,ķő,KS,ŏĝ,KY,ŏĕĕ,LA,ŏđć,ME,ņāē,MD,ńđā,MA,īđą,MI,ļēď,MN,ŕğ,MS,ňė,MO,ććĕĉ,MT,ćċćĉ,NE,ŕēď,NV,ň ćŋā,NH,ň ĩēđ,NJ,ň ğĕċ,NM,ň ĉĝ,NY,ćņ ġĉă,NC,ćņ ńċą,ND,ĩēą,OH,ŋĺ,OK,ļķ,OR,ĺđď,PA,ĉĉğ đēā,RI,ōċ ġĉă,SC,ōċ ńċą,SD,ňďą,TN,ċĕď,TX,ōđą,UT,ćđāā,VT,ğğ,VA,ďĉē,WA,ĉĉć ğğ,WV,ľēđ,WI,ĉĩĕ,WY»Ĵ",";B[BĪA)+1

অনুবাদক

সংক্ষিপ্তসার সহ একটি অ্যারেতে যুক্ত রাজ্যের নামগুলির খুব সাধারণ সংক্ষেপণ।


1

জাপট, 383 বাইট

অক্ষরের ক্রম নিয়ে পরীক্ষা করে প্রথম স্ট্রিংয়ের সংক্ষেপণ অসম্পূর্ণ হতে পারে।

g +`lkzÇUaidlnyaÀÍ¥evhjmycdhkÎödnxttaaviy`g`alabaµ
Ã2ka
iza
kÂ6s
Öâfnia
åªv
¬nש
Ü.Ø
fÓQ»
gegia
°ii
i»
ÅJno
Äa
Å0
kÂ6s
kÀ_cky
lia
Úpe
æ¯À
ÚUaÖ³etts
Úòig
·nÌta
æ«7ppi
æ¬
Úa
ßka
va»
w mp¢i
w jÀ y
w ´xi¬
w yk
Íh ÖÚ¦na
Íh »kota
oo
oklaÊá
eg
pnsylvia
r¸ Ó
Ñh ÖÚ¦na
Ñh »kota
âÊte
x
©ah
vÚ
virgia
Øgn
ØÙ virgia
æÈ;n
wyÇg`·bUv) u

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


1

গণিত, 138 140 134 বাইট

+2 বাইট - একটি ভুল খুঁজে পেয়েছে (1 টি 0 নয় এর অ্যারেটি অফসেটের প্রয়োজন)

-6 বাইট - একটি ভাল হ্যাশ পাওয়া গেছে

#~StringTake~1<>"R_ATE__IN_COI_J_I_SLNAT_Y_Y_HKOAE__SAA_DDLM_RVAH_XDTVA__I_N_EA_T_DY_C_KZL"~StringTake~{1+Hash@#~Mod~89866736~Mod~73}&

অন্যদের মতো এটিও নাম নেয় এবং প্রথম অক্ষর নেয় takes তারপরে এটি ডিফল্ট ম্যাথমেটিকা ​​হ্যাশ প্রয়োগ করে তারপরে Hash@#~Mod~89866736~Mod~73প্রতিটি রাষ্ট্রের জন্য একটি অনন্য নম্বর পেতে " " এটিতে দুটি মডুলাস প্রয়োগ করে । এই মানটি পরে দ্বিতীয় বর্ণটি উত্পন্ন করার জন্য একটি স্ট্রিংয়ে দেখানো হয়।

সম্ভবত আরও গল্ফ করা যেতে পারে তবে গাণিতিকের জন্য অনুসন্ধানের স্থানটি বিশাল। হ্যাশ অনুসন্ধানে নকল দ্বিতীয় বর্ণগুলি বিবেচনা করা হয়নি। _অক্ষরগুলি স্ট্রিংয়ের নষ্ট মানগুলিকে উপস্থাপন করে। তত্ত্ব অনুসারে আপনি কেবল 19 টি অক্ষরে স্ট্রিংটি পেতে পারেন তবে কাস্টম হ্যাশটি খুঁজে পেতে এটি একটি দুঃস্বপ্ন হতে পারে।


1

পার্ল 5, 150 148 বাইট (147 + 1)

এটি কোনওভাবেই অনুকূল নয়, তবে এটি তার কাজটি করে। প্রয়োজন -nকমান্ড লাইন পতাকা।

s/las//;s/ai?n//;s/[oie]n|ri//;s/e([vx])/$1/;s/issi?//;s/(.).+ /\1/;/(.)(.)/;/^([^W]).*(?:[cogavn][wiku]|[ir][ys][li]|rm)([adyti])$/;print uc"$1$2"

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