আরও কার্যকর মার্কিন রাষ্ট্র কোড


20

সংক্ষেপে মার্কিন যুক্তরাষ্ট্রের রাষ্ট্র! মজাদার ছিল, কিন্তু আমরা শিখেছি যে মার্কিন রাষ্ট্রের নামগুলি দক্ষতার সাথে সংক্ষেপিত করা বর্তমান সিস্টেমের সাথে শক্ত। আসুন দক্ষ গল্ফিংয়ের জন্য একটি বিকল্প রাজ্য কোড স্কিম নিয়ে আসি।

তোমার কাজ:

একটি ফাংশন (বা প্রোগ্রাম) লিখুন, যা একটি বৈধ মার্কিন রাষ্ট্রের নাম (কেবলমাত্র 50 টি সাধারণ রাজ্যের প্রয়োজন) দেওয়া হয়েছে, বড় হাতের অক্ষরে এটি সনাক্তকরণের জন্য একটি অনন্য দ্বি-বর্ণের কোড দেয়। কোডটি অবশ্যই এই প্রয়োজনীয়তাগুলি পূরণ করবে:

  • প্রথম চিঠিটি অবশ্যই রাজ্যের প্রথম চিঠির সমান হতে হবে।
  • দ্বিতীয় চিঠিটি অবশ্যই রাজ্যের অন্যান্য বর্ণগুলির একটি হতে হবে (কোনও স্থান নয়)।
  • এটি সর্বদা একই ইনপুটটির জন্য একই আউটপুট দিতে হবে এবং দুটি পৃথক বৈধ ইনপুটগুলির জন্য একই আউটপুটটি কখনও দিতে হবে না।

উদাহরণস্বরূপ, "আলাবামা" প্রদত্ত, আপনার ফাংশন "আল", "এএ", "এবি" বা "এএম" ফিরিয়ে দিতে পারে - যতক্ষণ না এটি আলাস্কা, আরকানসাস ইত্যাদির কোনওটির জন্য সেই মানটি ফেরত না দেয় ("এএএ) "শুধুমাত্র সম্ভব কারণ" এ "রাষ্ট্রের নামে একাধিকবার প্রদর্শিত হয়))

স্ট্যান্ডার্ড লুফোলস নিষিদ্ধ। স্ট্যান্ডার্ড ইনপুট / আউটপুট ঠিক আছে। এটি কোড গল্ফ, তাই সংক্ষিপ্ততম সমাধান, বাইটে, জিতে।

সম্ভাব্য ইনপুটগুলির সম্পূর্ণ তালিকা এখানে রয়েছে:

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

2
আউটপুটটি সবসময় দুটি বড় হাতের অক্ষর হওয়া উচিত, না মিশ্র ক্ষেত্রে আউটপুট দেওয়া ঠিক হবে? মিশ্র যদি ঠিক থাকে তবে "আব" কে "এবি" থেকে আলাদা হিসাবে বিবেচনা করা উচিত; এবং প্রথম অক্ষরটি কি সর্বদা বড় হাতের অক্ষরে থাকে?
জোনাথন অ্যালান

স্থান অক্ষর একটি বৈধ চিঠি হিসাবে বিবেচনা করা হয়?
জোনাথন অ্যালান

না। চিঠিগুলি হ'ল চিঠি।
স্টিভ বেনিট

আউটপুট অবশ্যই বড় হাতের হতে হবে। দুঃখিত, আমার সত্যই এটি নির্দিষ্ট করা উচিত ছিল।
স্টিভ বেনিট

ধন্যবাদ, আমি এই দুটি আদেশের সাথে গিয়েছিলাম কারণ আমি মনে করি যে তারা সবচেয়ে বেশি অর্থবোধ করেছে।
জোনাথন অ্যালান

উত্তর:


7

জেলি ,  13  12 বাইট

907ị;⁸Qḣ2ṢŒu

একটি monadic লিঙ্ক অক্ষর তালিকা গ্রহণ এবং ফিরে।

এটি অনলাইন চেষ্টা করুন! অথবা একটি পরীক্ষা স্যুট দেখুন

কিভাবে?

907ị;⁸Qḣ2ṢŒu - Monadic link: list of characters, state    e.g. Alabama   or   Kansas
907          - literal 907
   ị         - index into state                                b              K
     ⁸       - link's left argument, state
    ;        - concatenate                                     bAlabama       KKansas
      Q      - de-duplicate (unique by 1st appearance)         bAlam          Kans
       ḣ2    - head to index 2                                 bA             Ka
         Ṣ   - sort                                            Ab             Ka
          Œu - convert to uppercase                            AB             KA

জেলির ইনডেক্সিংটি 1-ইনডেক্সড এবং মডিউলার, সুতরাং দৈর্ঘ্যের কোনও কিছুর 907 তম সূচকটি হ'ল (907-Modulo-L) আইটেম। উদাহরণস্বরূপ "আলাবামা" এর দৈর্ঘ্য 7 হয় তাই সূচী 907 এ থাকা আইটেমটি হ'ল (907-মডুলো -7) তম , এবং 907-মডুলো -7 4 (907 = 129 * 7 + 4 ) হয় তাই সূচীতে আইটেমটি হয় 907 হ'ল 'খ'।

907 হ'ল প্রথম ধনাত্মক সূচক যেখানে সূচক 1 ব্যবহার করে রাষ্ট্রের সংক্ষিপ্ত বিবরণ এবং 50 টি রাজ্যের সমস্তটির উপরে এই সূচকটি অনন্য হয়ে ওঠে।

রাষ্ট্রের নামগুলি, তাদের স্পেসিসহ, দৈর্ঘ্য 4 থেকে 14 সমেত, এবং 907-মডুলো -6 1 (অন্য সমস্ত দৈর্ঘ্যের জন্য মান 1 নয়)। এর অর্থ হ'ল আমরা যদি আলাস্কা, হাওয়াই, কানসাস, নেভাডা এবং ওরেগনকে যথাক্রমে এএ, এইচ, এইচ, কে, এনএন এবং ওও হিসাবে সংক্ষেপের জন্য 1 ম এবং 907 তম অক্ষর ব্যবহার করি - এটি হাওয়াই, কানসাসের পক্ষে গ্রহণযোগ্য নয়, বা নেভাদা; সুতরাং একটি সমন্বয় করা প্রয়োজন; এটি সূচক 2 এবং সাজানোর শীর্ষে সংলগ্নকরণ, ডি-সদৃশ হওয়ার কারণ, এটি আলাস্কা, হাওয়াই, কানসাস, নেভাডা এবং ওরেগনকে যথাক্রমে AL, HA, KA, NA এবং OR পরিণত করে এবং বিদ্যমান রাষ্ট্রের সংক্ষিপ্তসারগুলির সাথে সংঘাত না করে ।


@ লেভেলরিভারস্ট এখনই ঠিক করা উচিত, যদিও আমার প্যাচ থেকে আমার মূল ত্রুটিযুক্তটির তুলনায় সম্ভবত একটি ছোট সমাধান হতে পারে।
জনাথন অ্যালান

আপনি একটি সংক্ষিপ্ত ব্যাখ্যা যোগ করতে পারেন?
ব্যবহারকারী1502040

@ ব্যবহারকারী1502040 আমি এটি করছি, এখন পরিষ্কার হওয়া উচিত, আপনি কিছু বুঝতে না পারলে আমাকে জানান।
জোনাথন অ্যালান

আপনি কিভাবে এটি নিয়ে এসেছেন?
ব্যবহারকারী1502040

@ user1502040 আমি জানতাম যে ইনপুটটিতে বর্ণগুলি থেকে কোডগুলি তৈরি করা আমাদের দরকার, এবং জেলি সূচকগুলি মডুলার ছিল, তাই আমি কেবল একটি সূচকটি সন্ধান করেছি যা 50 টি স্বতন্ত্র কোড দিয়েছে (এই জাতীয় সূচীগুলি সন্ধানের জন্য আমি কিছু পাইথন কোড লিখেছি - এছাড়াও খুঁজেছি) -1000 থেকে 1000 ব্যাপ্তির মধ্যে -341 এবং -773)। আমি মূলত "অন্যান্য" এর প্রয়োজনীয়তাটি মিস করেছি তাই সমস্যাটি ছড়িয়ে দেওয়া হয়েছে (বর্ণিত হিসাবে)। (আমি এখনও ছোট কিছু খুঁজে পাইনি, যদিও সেখানে থাকলে আমি অবাক হব না)।
জোনাথন অ্যালান

3

রুবি, 34 বাইট

->s{s[0]+(s[1,8]*999)[445].upcase}

আমি শুরু করেছি s[0]+s*99999[x].upcaseএবং x = 100000 অবধি অনেকগুলি মান খুঁজে পেয়েছি যা 50 টি রাজ্যের জন্য অনন্য কোড ফেরত দিয়েছে। দুর্ভাগ্যক্রমে তাদের সকলের ক্ষেত্রে সংক্ষিপ্তসারটির দ্বিতীয় চিঠিটি ছিল রাজ্যের প্রথম অক্ষরটি সদৃশ, যা অনুমোদিত নয় (যদি চিঠিটি রাষ্ট্রের নামে দু'বার না উপস্থিত হয়)) সুতরাং আমি অভিব্যক্তিটি ব্যবহার করার সিদ্ধান্ত নিয়েছি s[0]+s[1,8]*999[x]এবং এর ক্ষুদ্রতম মানটি পেয়েছি এক্স যে কাজ করেছে 445।

পরীক্ষা প্রোগ্রাম, এবং আউটপুট মন্তব্য

f=->s{s[0]+            #Return character 0 of the input. Then..
(s[1,8]*999)[          #Concatenate 999 copies of the 8 characters starting at character 1 (or till end of name if state has less than 9 characters) 
   445].upcase         #Return character 445 of the result, converted to uppercase. 
}                     
"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($/).map{|i|p [f[i],i]}

["AA", "Alabama"]
["AL", "Alaska"]
["AI", "Arizona"]
["AS", "Arkansas"]
["CR", "California"]
["CA", "Colorado"]
["CT", "Connecticut"]
["DA", "Delaware"]
["FO", "Florida"]
["GO", "Georgia"]
["HA", "Hawaii"]
["IA", "Idaho"]
["IO", "Illinois"]
["ID", "Indiana"]
["IW", "Iowa"]
["KA", "Kansas"]
["KC", "Kentucky"]
["LA", "Louisiana"]
["MI", "Maine"]
["MA", "Maryland"]
["MH", "Massachusetts"]
["MG", "Michigan"]
["MO", "Minnesota"]
["MS", "Mississippi"]
["MU", "Missouri"]
["MN", "Montana"]
["NS", "Nebraska"]
["NE", "Nevada"]
["NM", "New Hampshire"]
["NR", "New Jersey"]
["NX", "New Mexico"]
["NO", "New York"]
["NC", "North Carolina"]
["ND", "North Dakota"]
["OI", "Ohio"]
["OO", "Oklahoma"]
["OR", "Oregon"]
["PL", "Pennsylvania"]
["RI", "Rhode Island"]
["SC", "South Carolina"]
["SD", "South Dakota"]
["TS", "Tennessee"]
["TX", "Texas"]
["UA", "Utah"]
["VR", "Vermont"]
["VN", "Virginia"]
["WG", "Washington"]
["WI", "West Virginia"]
["WS", "Wisconsin"]
["WO", "Wyoming"]

1
দ্বিতীয় অক্ষরটি প্রথমটির মতো হতে পারে না এমন নিয়মটি আপনি কোথায় দেখলেন? উদাহরণটি এমনকি আলাবামার জন্য "এএ" ছিল।
পাওলো ইবারম্যান

3
The second letter must be one of the other letters of the state. আলাবামার জন্য এএ ঠিক আছে কারণ আলাবামার দুটি এ আছে। কেকে কেন্টাকি এর পক্ষে ঠিক আছে তবে কানসাসের পক্ষে নয়।
লেভেল নদী সেন্ট


2

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

s=>s[0]+s[(s>'M')+1153%s.length].toUpperCase()

ডেমো


1

রেটিনা , 49 46 বাইট

\B.*(?=[A-Zflmpxz])|\B.*(?=[hru])

T`l`L
!`^..

এটি অনলাইন চেষ্টা করুন! রাজ্যে যদি একটি দ্বিতীয় বড় হাতের অক্ষর বা কোনও একটি বর্ণ থাকে flmpxzতবে তা কোডের দ্বিতীয় বর্ণ হয়ে যায়। অন্যথায়, যদি এটিতে একটি বর্ণ থাকে hru, তবে তা কোডের দ্বিতীয় বর্ণ হয়ে যায়, অন্যথায় কেবলমাত্র রাষ্ট্রের প্রথম দুটি অক্ষর ব্যবহার করুন।


0

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

s=>s[0]+(s=s.slice(2,9))[146%s.length].toUpperCase()


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

s=>s[0]+(s[8]||s[s[1]=='o'?5:4]||s[2]).toUpperCase()


2
হাওয়াই, কানসাস এবং নেভাদা এখন অবৈধ সংক্ষিপ্ত বিবরণ পেয়েছে। (দ্বিতীয় চিঠিটি অবশ্যই রাজ্যের অন্যান্য চিঠির মধ্যে একটি হতে হবে ।) আমি আমার জেলি সমাধানে এই সঠিক সমস্যাটি সমাধান করেছি।
জোনাথন অ্যালান

আহ, কতো কৌতুকময়! আমাকে আমার প্রথম উত্তরে ফিরে যেতে হবে, ভাল জিনিস আমি এটি সংরক্ষণ করেছি।
darrylyeo
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.