ব্যবহারিক গল্ফ - মার্কিন যুক্তরাষ্ট্র [বন্ধ]


11

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

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

আমার বাবা হালকা হতে কোড পছন্দ করে। সুতরাং একটি স্যুইচ-কেস ব্লক ব্যবহার না করে, তিনি একটি ঝোঁক সমাধান চান।

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

  • নিউ ইয়র্ক
  • নিউ ইয়র্ক
  • এনওয়াই
  • NY

নিউ ইয়র্কের জন্য সমস্ত গ্রহণযোগ্য ইনপুট এবং এনওয়াই আউটপুট করা উচিত।

যদি নিউ ইয়র্ক এর মতো কিছু পাস করা হয় তবে ফাংশনটি মূল মানটি ফিরিয়ে দিতে পারে।

আপনি যে কোনও সাধারণ ভাষা ব্যবহার করতে পারেন। এটি একটি জনপ্রিয়তা প্রতিযোগিতা, সুতরাং এক সপ্তাহ শেষে সর্বাধিক ভোটের সাথে বিজয়ী হয়। আমি ধরে নিই যে এটি অভিনবত্ব এবং ইউটিলিটির পক্ষে হবে।

সম্পাদনা: বিবরণটি গল্পের ফ্লাফ, তবে আমি একটি অনুরূপ প্রকল্পে কাজ করছিলাম এবং ভেবেছিলাম এটি করার আরও একটি আকর্ষণীয় উপায় থাকতে হবে। আমি নিজে প্রকল্পটি করতে পারি (ইতিমধ্যে করেছি) তবে আমি ভেবেছিলাম এটি আরও আকর্ষণীয় চ্যালেঞ্জের জন্য ভাল জায়গা। "যে কোনও সাধারণ ভাষা" দ্বারা আমি এই চ্যালেঞ্জের জন্য ডিজাইন করা কাস্টম ভাষা / গ্রন্থাগারগুলি বাদ দিচ্ছি - আমি নিখরচায় কোডের সাহায্যের চেয়ে উপন্যাসের পদ্ধতিগুলি অনুসন্ধান করার চেষ্টা করছিলাম। আমি অনুমান করি যে কোনও এক সময় সবাই এটি করেছে, তবে এটি অস্বাভাবিক উপায়ে করা মজাদার হবে। আমি দেখতে পেয়েছি যে সবচেয়ে আকর্ষণীয় প্রকল্পগুলি হ'ল যেখানে আপনি প্রতিদিনের কাজগুলিকে নতুন এবং আকর্ষণীয় উপায়ে মোকাবেলা করেন - এজন্যই এটি গল্ফের চেয়ে জনপ্রিয়তার প্রতিযোগিতা।


14
আমি নিশ্চিত নই কেন কোড গল্ফের পরিবর্তে এটি জনপ্রিয়তার প্রতিযোগিতা (বিশেষত যেহেতু নামটিতে 'গল্ফ' অন্তর্ভুক্ত রয়েছে এবং আপনার বাবা শর্ট কোডের পক্ষে রয়েছে)।
Geobits

5
@ ক্লডিউ ট্রু, তবে এই সাইটটি প্রোডাকশন কোডের জন্য নয় ...
জিওবিটস

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

8
@ চিলিমাজিক you can use any code... সুতরাং ওপি আপনার এপিএল / সিজেএএম / গল্ফস্ক্রিপ্ট সমাধানটি ব্যবহার করতে তার সাইটটি পুনরায় লিখবে? এটি একটি সত্য গল্পের উপর ভিত্তি করে একটি চ্যালেঞ্জ। আমি ভোট দিয়েছি
edc65

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

উত্তর:


27

চুনি

ভেবেছিলেন যে কোনও নাম বা সংক্ষিপ্ত বিবরণ স্পষ্ট করে না লিখে রাষ্ট্রের সংক্ষিপ্ত বিবরণগুলি আকর্ষণ করা আকর্ষণীয় হবে। এই এক বিবেচনা ইনপুটের বর্ণাশুদ্ধি নেওয়া যায় না, কারণ আমরা codegolf.SE এখানে যেমন জিনিস যত্ন সম্পর্কে না rihgt ?

def f(s)
  [
    /(.).* (.)/,              # two words
    /^([CDGHKLPV]).*(.)$/,    # first and last letter
    /^(.).*([ZVX])/,          # unique letter
    /^([NFOUW])(.)/,          # two first letters
    /^(.)([DNR])/,            # unique second letter
    /^(.).*(L|N)\2/,          # double letters
    /^(.).SS(A|O)/,           # double S before the one used
    /^(.).*?[SNW](.)/,        # identified by the letters before them
    /(.)(.)/                  # two first letters

  ].find { |r| r =~ s.upcase }
  $1+$2
end

সমস্ত রাজ্যের সাথে মেলে চতুর নিদর্শনগুলি খুঁজে পেতে একটি অবিশ্বাস্য সময় নিয়েছিল। নিদর্শনগুলির ক্রম গুরুত্বপূর্ণ - প্রতিটি পর পরের প্যাটার্নগুলি বাকী রাজ্যগুলিতে প্রযোজ্য যা পূর্ববর্তী প্যাটার্নের সাথে মেলে না:

দুটি শব্দযুক্ত সমস্ত রাজ্য দুটি শব্দের প্রাথমিক বর্ণ ব্যবহার করে:

এন ইডব্ল্যু এইচ ampshire, এন ইডব্ল্যু জে ersey, এন ইডব্ল্যু এম exico, এন ইডব্ল্যু ওয়াই ORK, এন Orth সি arolina, এন Orth ডি akota, আর Hode আমি sland, এস outh সি arolina, এস outh ডি akota, ডব্লিউ হল ভী irginia

সমস্ত রাজ্য any any যে কোনও বর্ণের সাথে ভিক্ষা করে ining CDGHKLPVname নামে প্রথম এবং শেষ বর্ণটি ব্যবহার করুন:

সি আলিফর্নি , সি ওলোরেড , সি ওনেক্টিকু টি , ডি ইলাওয়ার , জি ইর্গি , এইচ আওয়াই আই , কে আনসা এস , কে এনটাক ওয়াই , এল ওউসিয়ান , পি এনসিলভানি , ভি ইরগিনি , ভি ইরমন টি

অবশিষ্ট রাজ্যের মধ্যে, {the অক্ষরটি ZVXঅনন্য:

একটি রি জেড ওনা, এনভি অ্যাডা, টিএক্স হিসাবে

Remaining with দিয়ে শুরু হওয়া বাকী সমস্ত রাজ্য FNOUWদুটি প্রথম অক্ষর ব্যবহার করে।

FL orida, নে braska, ওহ IO, ঠিক আছে Lahoma, অথবা Egon, যাও অই, ওয়া shington, ওয়াই sconsin, Wy oming

তারপরে, { DNRsecond দ্বিতীয় বর্ণ হিসাবে অনন্য:

আরবীতে কানসাস, ইন ডায়ানা, আইডি aho

সাধারণ নিদর্শনগুলি তৈরি করা সত্যিই কঠিন হচ্ছে, তবে ...

কেবলমাত্র তিনটি রাজ্যে ডাবল Nবা L, এবং ডাবল বর্ণটি রাষ্ট্রের সংক্ষেপে ব্যবহৃত হয়:

টি স্বীকারোক্তি এন essee, এমএন esota, আমি inois

Aবা Oডাবল এস পরে অনন্য

এম গাধা একটি চুসেটস এবং এম ইস্যু ইউরি

যখনই state the বাকী রাষ্ট্রের নামগুলিতে অন্য বর্ণগুলির সামনেSNW উপস্থিত হয় , তার পরে বর্ণগুলি সংক্ষেপে ব্যবহৃত হয়:

একটি লাস k একটি এম arylan , এম Ain , এম হল গুলি issippi, এম উপর টি Ana, আমি Ow একটি

দু'টি বাকি। এগুলি দুটি প্রথম বর্ণ ব্যবহার করে:

আল আবামা, মি চিগান


এটি অবশ্যই গল্ফ করা যেতে পারে:

রুবি 2 - 191 165 154 টি অক্ষর

আরও 26 টি অক্ষর রেগেক্সেসকে কিছুটা uglified করে বন্ধ। এছাড়াও, অন্যতম একটি মূল রেজিওকস অনর্থক হয়ে উঠল!

gets;[/.* (.)/,/^[CDGHKLPV].*(.)$/,/.*([ZVX])/,/^[NFOUW](.)/,/^.([DNR])/,/.*(L|N)\1/,
/.*SS(A|O)/,/.*?[SNW](.)/,/.(.)/].find{|r|$_.upcase=~r}
puts $&[0]+$1

"বর্তমানে গল্ফস্ক্রিপ্ট এন্ট্রি আকারের এক তৃতীয়াংশেরও কম!" : পি মনে রাখবেন, গল্ফস্ক্রিপ্ট রিজেক্সেস ব্যবহার করে না।
জোশিয়াহ উইনস্লো

এবং আমি আকার পরিবর্তন করেছি। : পি
জোশিয়াহ উইনস্লো

1
(@ জোশিয়ার উইনস্লো এবং ওহ, এটি 3.9575757575 করুন ...: পি)
ডানিরো


1
আমি এই উত্তরটি পছন্দ করি তবে এটি বৈধ নয় কারণ এটি অবৈধ ইনপুটটিকে চিহ্নিত করতে পারে না (যেমন আপনি বলেছেন)। এমনকি একটি নির্দিষ্ট উদাহরণ রয়েছেIf something like New Yrok is passed in, the function should return the original value.
edc65

4

সি শার্প

আমি ইতিমধ্যে রাজ্যে সংক্ষিপ্তারগুলির জন্য রাজ্যের স্ট্রিংটি ছোট করার জন্য অক্ষরগুলি ব্যবহার করেছি।

public string GetAbbr(string state)
            {

                var states =
                    new[] {
                        "AlasKa", "ALabama", "AriZona", "ARkansas", "CAlifornia", "COlorado", "ConnecticuT",
                        "DElaware", "FLorida", "GeorgiA", "HawaiI", "IDaho", "ILlinois", "INdiana", "IowA", "KansaS",
                        "KentuckY", "LouisianA", "MainE", "MarylanD", "MAssachusetts", "MIchigan", "MinNnesota",
                        "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", "washington D.C.", "West Virginia", "WIsconsin", "WYoming"
                    };
                var all = states.ToDictionary(st => string.Concat(st.Where(char.IsUpper)));

                var wanted = all.FirstOrDefault(pair => state.ToUpper().Equals(pair.Value.ToUpper()) || state.ToUpper().Equals(pair.Key));

                return wanted.Key ?? state;
            }

1
চমৎকার কাজ!
বিটা ক্ষয়

2

জাভাস্ক্রিপ্ট (E6)

উটকেস ট্রিকটি ব্যবহার করে কিছুটা ছোট করার জন্য এখানে বাল্ক হ'ল নামগুলির তালিকা । গল্ফড, 617 বাইট

F=i=>
  "AkAlAzArCaCoCtDeFlGaHiIdIlInIaKsKyLaMeMdMaMiMnMsMoMtNeNvNhNjNmNyNcNdOhOkOrPaRiScSdTnTxUtVtVaWaWvWiWyAlaskaAlabamaArizonaArkansasCaliforniaColoradoConnecticutDelawareFloridaGeorgiaHawaiiIdahoIllinoisIndianaIowaKansasKentuckyLouisianaMaineMarylandMassachusettsMichiganMinnesotaMississippiMissouriMontanaNebraskaNevadaNew hampshireNew jerseyNew mexicoNew yorkNorth carolinaNorth dakotaOhioOklahomaOregonPennsylvaniaRhode islandSouth carolinaSouth dakotaTennesseeTexasUtahVermontVirginiaWashingtonWest virginiaWisconsinWyoming"
  .match(/.[^A-Z]*/g).map((w,q)=>U(w,U(w)==U(i)?p=q%50:p),U=s=>s.toUpperCase(),p=-1)[p]||i

0

পাইথন

কেবল কোড-গল্ফ চ্যালেঞ্জ হিসাবে এটি করার সিদ্ধান্ত নিয়েছে। এটি নিচে 906 713 daniero এবং hsl সাহায্যে 694 অক্ষর:

s='AK,AL,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,ALASKA,ALABAMA,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(",")
x=input().upper()
print(s[s.index(x)%50]if x in s else x)

যাইহোক, যদি মডিউলগুলি অনুমোদিত হয় ( আমাদের মডিউলের মতো ) তবে আমি এটিকে 130 টি করে নামাতে পারি:

import us
i=raw_input()
x=us.states.lookup(i)
print x.abbr if x else i

এবং যদি রাষ্ট্রের অস্তিত্ব থাকে না তখন আপনাকে যদি মূল মানটি ফেরত না দিতে পারি তবে আমি এটি 50 টি অক্ষরে নামতে পারতাম:

import us
print us.states.lookup(raw_input()).abbr

আপনি sএকটি বড় স্ট্রিং রেখে প্রথমটিতে মোটামুটি 200 টি অক্ষর সংরক্ষণ করতে পারেন , তারপরে এটি কমাতে বিভক্ত করুন ( ,); সমস্ত একক উদ্ধৃতি প্রয়োজন নেই।
ডানিরো

@ দানিরো বিশ্বাস করতে পারছি না আমি সে কথা ভেবে দেখিনি! এখন করবে।
জেমস উইলিয়ামস

আপনি ওয়াশিংটন, ডিসি অপসারণ করতে পারেন কারণ এটি কোনও মার্কিন রাষ্ট্র নয়।
নিনজাবার্মনকি

@ এসএসএল ধন্যবাদ আমি অনলাইনে যে সকল রাজ্য খুঁজে পেয়েছি তার একটি তালিকা থেকে আমি এই তালিকাটি নিয়েছি, ওয়াশিংটন ডিসি সেখানে আছে তা বুঝতে পারি নি।
জেমস উইলিয়ামস

0

বাশ + সেড, 291 বাইট

ড্যানিরোর রুবি সমাধানের নির্লজ্জ রূপান্তর:

echo $*|tr a-z A-Z|sed -e\
"/\(.\).* \(.\).*/b1;/^\([CDGHKLPV]\).*\(.\)$/b1;/^\(.\).*\([ZVX]\).*/b1;\
/^\([NFOUW]\)\(.\).*/b1;/^\(.\)\([DNR]\).*/b1;/^\(.\).*\([LN]\)[LN].*/b1;\
/^\(.\).*SS\([AO]\).*/b1;/^\(.\).*\([ED])\)$/b1;/^\(.\).*[SNW]\(.\).*/b1;\
/\(.\)\(.\).*/b1;:1 s//\1\2/"

0

গল্ফস্ক্রিপ্ট - 750 653

বাল্কটি রাষ্ট্রের নাম এবং সংক্ষেপে রয়েছে।

{.96>32*-}%.,2>{"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"","/.@?)=}{}if

ব্যাখ্যা:

{        }%                         Map this to every character in the input string:
 .96>32*-                             Subtract 32 from the ASCII value if it's from "a" onwards.
                                      This turns every lowercase letter into an uppercase letter.
           .,2>                     Check if the input length is greater than 2.
               {              }     If it is, they inputted the full name.
                "..."                 Our string is in the form "STATE NAME,STATE ABBREVIATION".
                     ","/             We split the string at every comma to turn it into an array.
                         .@?          Then we see where the input string is in the array...
                            )=        ...then we return the value right next to it.
                               {}   If not, they inputted the abbreviation.
                                      ...do nothing.
                                 if EndIf
                                    (implied) Print the abbreviation

দুঃখিত, তবে আমি আমার পুরো স্ক্রিপ্টটি নেওয়ার এবং বয়লারপ্লেটের কয়েকটি বাইট ছাড়া আর কিছুই যুক্ত করার বিন্দু দেখতে পাচ্ছি না; এটি কেবল কিছুই এনে দেয় না। তবে আমার অনুমান ক্রেডিটগুলির জন্য ধন্যবাদ ... সত্যই আপনার, "অন্য লোক"।
ডানিরো

দুঃখিত, ট্রল প্রবেশ আমি জানি এটি আসল প্রবেশ নয়।
জোশিয়ার উইনস্লো

ঠিক আছে, আমাকে তখন ট্রোলড হিসাবে বিবেচনা করুন;)
দানিরো

@ ড্যানিরো আরে, কমপক্ষে আমি জানি যে গল্ফস্ক্রিপ্টে পুনর্বিবেচনা করা সম্ভব! আসলেই আমি একটাই কারণ: পি
জোশিয়াহ উইনস্লো

0

পিএইচপি

আমার প্রয়াস, যা আমি আশা করেছিলাম তেমন সফল হয়নি, স্ট্রিংয়ের দৈর্ঘ্য এবং কিছু নির্দিষ্ট চরিত্রের অবস্থান ব্যবহার করে রাষ্ট্রের নাম থেকে সংক্ষেপণ বের করে। সম্ভবত নাম অপসারণের আরও কিছু ভাল সিকোয়েন্সিং সম্ভব।

function findAbb ($state) {
    $first = substr($state, 0, 1);
    $last = substr($state, -2,1);
    $state = strtolower($state);
    if (strlen($state) < 4) {
        return strtoupper($state);
    }
    if (strpos($state, ' ')) { //if it's a space, return the first letter of each word.
        $space_index = strpos($state, ' ');
        $state = explode(' ', $state);
        return strtoupper(substr($state[0], 0, 1) . substr($state[1], 0, 1));
    }
    if (startsWith($state, 'io')) { //iowa is annoying, get rid of it.
        return strtoupper($first . $last);
    }
    if (startsWith($state, 'w,i')) { //if it starts with a W, return the first 2.
        return strtoupper(substr($state, 0, 2));
    }
    if (strlen($state) < 7 && strpos($state, 'm')===false) { //matches texas, ohio, and utah.
        return strtoupper($first . substr($state, -4,1));
    }
    if (strlen($state) < 7 && substr($state, 0, 1) > 'j' && substr($state, 0, 1) < 'n') { //matches maine, kansas, and hawaii
        return strtoupper($first . $last);
    }
    if (startsWith($state, 'c,d,k,l,p,v,g,h')) { //some unique states
        return strtoupper($first . $last);
    }
    if (strpos($state, 'sk')) {
        return strtoupper ('ak');
    }
    if (startsWith($state, 'k,l', 1)) {
        return strtoupper(substr($state, 0, 2));
    }
    if (startsWith($state, 'n')) {
        return strtoupper($first . substr($state, 2, 1));
    }
    if (startsWith($state, 'n', 2) || startsWith($state, 'z', 3)) { //montana, tennessee, minnesota, and arizona
        return strtoupper($first . substr($state, 3, 1));
    }
    if (startsWith($state, 'm') && ($last == 's') || ($last == 'n')) {
        return strtoupper(substr($state, 0, 2));
    }
    if (strpos($state,'o')) {
        return strtoupper($first . 'o');
    }
    if (strpos($state,'y')) {
        return strtoupper($first . 'd');
    }
    if (strpos($state,'r')) {
        return strtoupper($first . 'r');
    }
    if (strpos($state,'ss')) {
        return strtoupper($first . 's');
    }

    return $state; //otherwise return the name of the state (it was mispelled).
}

function startsWith ($state, $letters, $index = 0) { //takes a comma separated array and finds contents.
    $letters = split(',',$letters);
    for ($q = 0; $q<count($letters); $q++) {
        if (strpos($state,$letters[$q]) === $index) {
            return true;
        }
    }
    return false;
}

অবশ্যই, এটি গল্ফ করা যেতে পারে। এটি আমার প্রথম গল্ফিং প্রচেষ্টা, তাই অন্তর্দৃষ্টি প্রশংসা করেছে। (911)

function t($s){$s=u($s);$f=b($s,0,1);$l=b($s,-2,1);
if(strlen($s)<4)return $s;if(strpos($s,' '))$s=split(' ',$s);
return b($s[0],0,1).b($s[1],0,1);
if(w($s,'IO'))return $f.$l;
if(w($s,'W,I'))return b($s,0,2);
if(strlen($s)<7 && strpos($s,'M')===false)return $f.b($s,-4,1);
if(strlen($s)<7 && b($s,0,1)>'I' && b($s,0,1)<'N')return $f.$l;
if(w($s,'C,D,K,L,P,V,G,H'))return $f.$l;if(strpos($s, 'SK'))return 'AK';
if(w($s,'K,L',1))return b($s,0,2);if(w($s,'N'))return $f.b($s,2,1);
if(w($s,'N',2) || w($s,'Z',3))return $f.b($s,3,1);
if(w($s,'M') && ($l=='S') || ($l=='N'))return b($s,0,2);
if(strpos($s,'O'))return $f.'O';
if(strpos($s,'Y'))return $f.'D';if(strpos($s,'R'))return $f.'R';
if(strpos($s,'SS'))return $f.'S';return $s;}function w($s,$l,$i=0){$l=split(',',$l);
for($q=0;$q<count($l);$q++)if(strpos($s,$l[$q])===$i)return 1;return 0;}
function u($z){return strtoupper($z);}
function b($v,$x,$y){return substr($v,$x,$y);}

0

জাভাস্ক্রিপ্ট

আমি জানি এটি কোড গল্ফ নয়, তবে আমি যাইহোক এটি গল্ফ করতে চাই। :)

var r=new XMLHttpRequest
r.open("GET","https://gist.githubusercontent.com/mshafrir/2646763/raw/f2a89b57193e71010386a73976df92d32221d7ba/states_hash.json",0)
r.send()
var o=r.responseText,m=prompt(),a=m
o=JSON.parse(o)
for(var i in o)if(o[i].toLowerCase()==m.toLowerCase())a=i
alert(a)

হ্যাঁ নতুন জিনিস! (স্নিপেটস স্ট্যাক)


3
এটি একটি স্ট্যান্ডার্ড লুফোল এবং স্ট্যান্ডার্ড লুফোলগুলি স্পষ্টভাবে উল্লেখ না করেই প্রযোজ্য।
ইনগো বার্ক

@ ইনগোবার্ক আমি বিশ্বাস করি না যে এটি স্ট্যান্ডার্ড লুফোলের আওতায় পড়ে ... এটি কোনও ফাইলকে পঠনের মতোই ইন্টারনেট থেকে প্রয়োজনীয় ডেটা পাচ্ছে।
বিটা ক্ষয়

2
তাহলে কি eval(open('a.txt'))বৈধ? আপনি যদি কোনও ধরণের ফাইল ব্যবহার করেন তবে আপনাকে অবশ্যই সেই ফাইলটি এবং তার ফাইলের নামটি আপনার অক্ষর গণনায় অন্তর্ভুক্ত করতে হবে। (এটি কোড গল্ফ নয়, সুতরাং যাইহোক যাইহোক বাস্তবে এটি কোনও ব্যাপার নয়))
ডোরকনব

@ ডুরকনব যেহেতু আপনি এই বক্তব্যটি উত্থাপন করেছেন যে এটি কোড গল্ফ নয়, তাই আমি কেন নীচে নামছি তা আমি দেখতে পাচ্ছি না ... আমি পপ কনসের কোনও নিয়ম লঙ্ঘন করি না।
বিটা ক্ষয়

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