আমি কি ইঞ্জিনিয়ার?


42

সম্প্রতি, ইঞ্জিনিয়ার হিসাবে নিজেকে উল্লেখ করার জন্য ট্র্যাফিক লাইটের সময়গুলি অধ্যয়নরত একজন বৈদ্যুতিক প্রকৌশলীকে ওরেগন রাজ্য দ্বারা 500 ডলার জরিমানা করা হয়েছিল ।

ইনপুট হিসাবে একটি 2 অক্ষরের স্ট্রিং দেওয়া হয়েছে, একটি মার্কিন রাষ্ট্রের প্রতিনিধিত্ব করে, আউটপুট:

  • I am not an engineerরাষ্ট্র যদি ওরেগন হয় ( OR)
  • I am an engineer রাজ্যটি যদি অন্য কোনও মার্কিন রাষ্ট্র হয়
  • What is an engineer? অন্য কোনও ইনপুট দেওয়া হয়েছে

আউটপুটে কোনও নেতৃস্থানীয় হোয়াইটস্পেস নাও থাকতে পারে তবে এতে আপনার ইচ্ছামতো ট্রেলিং হোয়াইটস্পেস থাকতে পারে ।

আপনি ধরে নিতে পারেন ইনপুটটি সর্বদা 2 বড় হাতের অক্ষর হবে।

এখানে সমস্ত মার্কিন যুক্তরাষ্ট্রের 50 টি সংক্ষেপের তালিকা রয়েছে:

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

স্কোরিং

এটি , তাই প্রতিটি ভাষায় স্বল্পতম বাইট জিততে পারে!


আউটপুটে আমার কি পেছনের জায়গা থাকতে পারে?
বিড়াল বিড়াল

@ বিজনেসগেট হ্যাঁ, স্পষ্টভাবে তা আপডেট করে আপডেট করবেন
স্কিদদেব

4
পার্শ্ব দ্রষ্টব্য: আপনি যদি পুরো স্ট্রিং একসাথে একত্রিত করেন তবে আপনি "... ঠিক আছে প্যারিস সিএসডিটিএন ..." ;-)
মাতীন উলহাক

ম্যাটস জারলস্ট্রোমকে টেক্সাসে নিজেকে প্রকৌশলী হিসাবে উপস্থিত করার অনুমতি দেওয়া হবে না।
বেন ভয়েগট

উত্তর:


17

সি #, 311 309 240 237 222 195 184 183 বাইট

s=>s=="OR"?"I am not an engineer":"MINCALA MSCTNMNVAKY WAZ PAR FL GA NHID COKSD ME MDE MA MTX NE NJ NY ND MOH RIA UT WVT WIL WY".Contains(s)?"I am an engineer":"What is an engineer?";

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

আগে স্পেস যুক্ত করে 2 বাইট সংরক্ষণ করা anহয়েছেb

-69 (হুয়েউ) -72 বেল্ট থেলথেলকোডারকে ধন্যবাদ

-15 বাইটস সম্পূর্ণরূপে হিউম্যান এর প্রতিভা স্ট্রিং ধন্যবাদ

-38 বাইট কোস আরও স্ট্রিং সংকোচনের

Ungolfed:

public static string a(string s)
{
    var b = " an engineer";
    if (s == "OR")
    {
        return "I am not" + b;
    }
    else
    {
        if ("MINCALA MSCTNMNVAKY WAZ PAR FL GA NHID COKSD ME MDE MA MTX NE NJ NY ND MOH RIA UT WVT WIL WY".Contains(s))
        {
            return "I am" + b;
        }
        else
        {
            return $"What is{b}?";
        }
    }
}

..."+bইন্টারপোল্টেড স্ট্রিংগুলির পরিবর্তে "OR"? ....: System.Arr ... if..else if...elseto তে পরিবর্তন করুন ব্যবহার করুন , return s==অর্থাত্ একটি টের্নারি ব্যবহার করুন। u.Containsপরিবর্তে ব্যবহার করুন Array.Exists। আমি মনে করি আপনি যদি কমাগুলির পরিবর্তে স্পেস ব্যবহার করেন তবে .Split()কোনও প্যারাম দিয়ে কাজ করবে না।
TheLethalCoder

বি এবং
ইউকে

@ স্টেফানডেলপোর্ট uএকটি অ্যারে স্ট্রিং নয়। তবে, আপনি uস্ট্রিং হিসাবে সেট করে .Containsএবং এটি ব্যবহার করে বাইটস সংরক্ষণ করতে পারেন ।
TheLethalCoder

240 বাইট: s=>{var b=" an engineer";return s=="OR"?"I am not"+b:"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 PA RI SC SD TN TX UT VT VA WA WV WI WY".Contains(s)?"I am"+b:$"What is{b}?";};। ভাবুন আমি প্রাসঙ্গিক সমস্ত সাদা স্থান সরিয়ে ফেলেছি। (স্বাক্ষরিত)
TheLethalCoder

1
কিছু বাইট সংরক্ষণের জন্য "ইঞ্জিনিয়ার" কে আলাদা ভেরিয়েবল হিসাবে সংজ্ঞায়িত করে আপনি এটি গল্ফ করতে পারেন।
ওল্ডবুনি 2800

11

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

s=>['I am'+(x=' an engineer'),`What is${x}?`,'I am not'+x][s=='OR'?2:'MNNMLATNAKALARAZCACOCTDEFLGAHIIAIDILINKSKYMAMDMEMIMOMSMTNCNDNENHNJNVNYOHOKPARISCSDTXUTVAVTWAWIWVWY'.search(s)&1]

ডেমো


3
যেমন ব্যর্থ LA: /
ক্রিস্টোফ

@ ক্রিসটফ এখনই ঠিক আছে। এটি রিপোর্ট করার জন্য ধন্যবাদ!
আর্নৌল্ড

ভেবেছিল এটি অনুপস্থিত বা মুহুর্তের জন্য - নির্বোধ!
চ্যাস ব্রাউন


8

সি, 215 208 190 বাইট

-7 কুল গাই ধন্যবাদ

#define z" an engineer"
#define f(s)!strcmp(s,"OR")?"I am not"z:strstr("MINCALA MSCTNMNVAKY WAZ PAR FL GA NHID COKSD ME MDE MA MTX NE NJ NY ND MOH RIA UT WVT WIL WY",s)?"I am"z:"What is"z"?"

@ সম্পূর্ণমানুষের "জেনাস স্ট্রিং" ব্যবহার করা হয়েছে।

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

  • "string"z( ) এর "string"সাথে স্বয়ংক্রিয়ভাবে সংক্ষিপ্ত হয়ে যায় । হ্যাঁ, সি তা করে।z" an engineer"
  • !strcmp(s,"OR") "OR" এর সাথে স্ট্রিংটির তুলনা করে।
  • ?"I am not"zসত্য হলে "আমি প্রকৌশলী নই" প্রত্যাবর্তন করে। তা না হলে ...
  • :strstr(...,s) @ সম্পূর্ণমানুষের প্রতিভা স্ট্রিংয়ে সরবরাহিত স্ট্রিং রয়েছে কিনা তা পরীক্ষা করে দেখুন।
  • ?"I am"z "আমি প্রকৌশলী" যদি তা ফেরত দেয় এবং ...
  • :"What is"z"?")ফিরে আসে "ইঞ্জিনিয়ার কী?" অন্যথায়।

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


1
206 বাইট:#define z " an engineer" f(char*s){!strcmp(s,"OR")?puts("I am not"z):strstr("MINCALA MSCTNMNVAKY WAZ PAR FL GA NHID COKSD ME MDE MA MTX NE NJ NY ND MOH RIA UT WVT WIL WY",s)?puts("I am"z):puts("What is"z);}
স্পিক্যাট্রিক্স

@ কুলগুই যে "ইঞ্জিনিয়ার কী?" তবে আমি এটি 209 বাইটে কাজ করতে পেরেছি। ধন্যবাদ!
এমডি এক্সএফ

আপনি স্ট্রিংটি মুদ্রণের পরিবর্তে ফিরে আসতে পারেন
l4m2

@ l4m2 অনুরূপ কিছু করেছিলেন।
এমডি এক্সএফ


5

পাইথন 2 , 192 186 182 178 176 বাইট

সম্ভবত রাষ্ট্রের স্ট্রিং আরও সংকুচিত করতে পারে।

lambda s,e=' an engineer':'I am'+' not'*(s=='OR')+e if s in'MINCALAZ SCT FL GA WIAKSD ME MD MA MNMS MOKY MTNE NVTX NH NJ NY ND COHIDE OR PARIL UT VA WA WV WY'else'What is%s?'%e

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


2
আপনি শুধুমাত্র ব্যবহার uমধ্যে if s in uআপনি সরাসরি পরিবর্তে এটি ব্যবহার করে নোট তা প্রকাশক?
TheLethalCoder

1
@totallyhuman যে স্ট্রিং সংক্ষেপণ বেশ আশ্চর্যজনক, দুর্দান্ত!
স্কিডদেব

2
@totallyhuman VALA WAZ NCA COH CTX SDE FL GA HID WIL MIN IAKSC KY ME MD MA MNMS MOK MTNE NH NJ NY ND PARI UT NVT WV WYক্ষুদ্রতম আমি এটা করতে পারেন
Skidsdev

2
'MINCALA MSCTNMNVAKY WAZ PAR FL GA NHID COKSD ME MDE MA MTX NE NJ NY ND MOH ORIA UT WVT WIL WY'
ফিলিপ নারদী বাটিস্তা

2
উফফফফ, দুঃখিত এটি আমাকে এত দিন লেগেছে। মনে হচ্ছে যে স্ট্রিংটি অনুলিপি করার কারণে আমি হারিয়েছি আমার উত্তরটি এটির ব্যবহারের চেয়ে ভাল করে না। দয়া করে এটিকে উত্সাহ দেওয়া বন্ধ করুন এবং অন্য আরও উত্তরের উত্তরটি উত্সাহিত করুন।
সম্পূর্ণমানবিক

5

জাভা (জেডিকে 10) , 184 বাইট

s->s.format(s.equals("OR")?"I am not%s":"MINCALA MSCTNMNVAKY WAZ PAR FL GA NHID COKSD ME MDE MA MTX NE NJ NY ND MOH RIA UT WVT WIL WY".contains(s)?"I am%s":"What is%s?"," an engineer")

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

সংকুচিত স্ট্রিংটি পুনরায় ব্যবহার করার জন্য আমি ক্ষমা চাইছি: আমি নিজে থেকে আরও ভাল কিছু পাইনি ... :(


4

05 এ বি 1 ই , 104 103 101 বাইট

„€À€ˆ„I€Ü‚.•~Zµ∞/'—¶[@øl•Œ2ù.•9₆\|&׃Ω#àöF},cΓ páe;ð²∍₆jÌn#dÅ?DvĆ8A•2ôìuIå©è¹„ORQi'€–}„€¤©É)ðýª'?®_×J

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

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

„€À€ˆ„I€Ü‚.•ÂkXñ…ΓVt€Ïè∍‡Λi„2¶’að=–½6™oÑþÁāõgO·ð~
λ†₃›;â&ÄFv¾‡1~ǝQa«;cS•u2ôIå©è¹„ORQi'€–}„€¤©É)ðýª'?®_×J

সংকোচনে বা বিশেষ ক্ষেত্রে এর সাথে খুশি নয় ?


ঠিক আছে এই কি? আপনি কি কেবল রাজ্যগুলিকে পুনরায় অর্ডার দিয়েছিলেন বা কিছু?
এরিক আউটগল্ফার

@ এরিকথিউটগল্ফার: 104 বাইট সংস্করণটি বর্ণমালার অক্ষরের অবস্থানের সাথে সংখ্যার কেবল সংক্ষেপণ (A=1,C=3 ...)। 103 বাইট সংস্করণটি কিছু রাজ্যের ক্ষেত্রে একই কাজ করে এবং কিছু রাজ্যকে মার্জ করে যা একই অক্ষরে শেষ হয় যা একটি নতুন রাষ্ট্র শুরু হয়। আমি নিশ্চিত যে এটি এখনও উন্নত হতে পারে এবং আমি আরও গল্ফ করলে আমি আরও ভাল ব্যাখ্যা যুক্ত করব।
এমিগিনা

1
চমৎকার উত্তর! আমি পছন্দ করি .•~Zµ∞/'—¶[@øl•Œ2ùআপনি কয়েকটি রাজ্যের জন্য ব্যবহার করেছেন, কেবলমাত্র সমস্ত রাজ্যকে সংকুচিত করে এবং এর পরিবর্তে । এবং সামগ্রিকভাবে সুন্দর পদ্ধতির। (খুশি হয়ে আমি নিজের উত্তরটি নিজের চেষ্টা করার আগে দেখেছি, কারণ এটি অবশ্যই খুব কম ছিল না ..)
কেভিন ক্রুইজসেন

4

এফ # , 222 বাইট

let f v=let (a,b)=if ("WALAKSCARINMNVTNCTX NHIDE MOHIL COKY MSD PAZ WIA WVA FL GA MA MD ME MI MT NE ND NJ NY UT WY").Contains v then ("I am",".") elif "OR"=v then ("I am not",".") else ("What is","?") in a+" an engineer"+b

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

সম্প্রসারিত:

let f v =
    let (a, b) =
        if ("WALAKSCARINMNVTNCTX NHIDE MOHIL COKY MSD PAZ WIA WVA FL GA MA MD ME MI MT NE ND NJ NY UT WY").Contains v then ("I am", ".")
        elif "OR" = v then ("I am not", ".")
        else ("What is", "?")
    a + " an engineer" + b

দুই অক্ষরের রাষ্ট্র প্রদত্ত বনাম ফাংশন প্রেরণ করা , একটি tuple গড়ে তুলতে (ক, খ) মাথা এবং "প্রকৌশলী" বাক্যের লেজ উপস্থাপন করে।

"সঙ্কুচিত রাষ্ট্র স্ট্রিং" অবাধে ব্যবহার করতে নির্দ্বিধায়; এটি একটি পুরো বাইটটি মিনসালার চেয়ে কম ...


4

আর , 109 96 বাইট

function(x)sub("#"," an engineer",c("I am not#","I am#","What is#?"))[2-x%in%state.abb+!x=="OR"]

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

জে.ডোকে 13 বাইট ধন্যবাদ - রেজেক্স এবং সূচকের ব্যবহারের মাধ্যমে।



1
@ জে.ডো subঅনেক ভালো, আপনাকে ধন্যবাদ!
জেসি


@ জে.ডো অবশ্যই!
জয়সি

3

জাপট , 136 135 131 129 128 বাইট

রাষ্ট্রের সংক্ষিপ্তসারগুলির ক্রম পরীক্ষা করে আরও সঞ্চয় পাওয়া যায় - আমি কিছুক্ষণের মধ্যে আবার ফিরে আসব।

`mnnmlãGLÏz¯¬ct¸flgaá[9¨kyµmçpCijmsmtnhnvnyn¬kpÂÉcsdk¡x©vavt°±wvwy`ò øUv)?"I am {¥"OR"?"not ":P}"+` à¨\ `:`Wt   à¨\?

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


ব্যাখ্যা

  • আমরা নিম্নতর সংক্ষিপ্ত সংক্ষিপ্তসারগুলির একটি সংক্ষেপিত স্ট্রিং গ্রহণ করি, এটি সংক্ষেপিত করি এবং òপদ্ধতিটি ব্যবহার করে এটি 2 টি অক্ষরের স্ট্রিংয়ের অ্যারে বিভক্ত করি ।
  • এরপরে øঅ্যারে রয়েছে কিনা তা দেখার জন্য আমরা পদ্ধতিটি ব্যবহার করি Uvযা ইনপুট স্ট্রিংটি লোয়ারকেসে রূপান্তরিত হয়।
  • যদি আমরা তা করি তবে আমরা শুরু করে আমাদের আউটপুট স্ট্রিং তৈরি করি "I am "
  • ইনপুট স্ট্রিং ¥(সমান) "OR"আমাদের উভয়কে "not "ফাঁকা স্ট্রিং ভেরিয়েবল যুক্ত করতে দেয় কিনা তা পরীক্ষা করা হচ্ছে P
  • এবং তারপরে আমরা সংক্ষেপিত স্ট্রিংটি সংক্ষেপিত করে সংযোজন করি "an engineer"
  • অ্যারেতে যদি ইনপুটটি পাওয়া যায় না, তবে আমরা সংক্ষেপিত স্ট্রিংয়ের ডিকম্প্রেশনটি আউটপুট করি "What is an engineer?"

3

পাইথন 3 , 180 179 178 বাইট

def f(s):e=" not"*(s=="OR")+" an engineer";return"I am"+e if s in"PALAKSCAZ CTNMINCOR FL GA MDE ME MND MA MSD MOKY NE NH NJ NY WA OHID UTX MTNVARIA WIL WVT WY"else"What is"+e+"?"

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



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

ধন্যবাদ @ জোকিং। এটি পাইথন 2 উত্তরটির সাথে সাদৃশ্যযুক্ত এই মুহূর্তে আইএমও :)। আমি স্ট্রিংটি সংকোচনের চেষ্টা করছি, তবে সবচেয়ে কম আমি পাইনি 92 টি প্রতীক। এটি করার জন্য আমি একটি শর্ট স্ক্রিপ্ট লিখেছি , তবে এটি কেবল এটি 94 টি অক্ষরে কেটে ফেলতে পারে এবং এটি অনুকূলভাবে সংকোচিত হয় না। আমি আরও মনে করি যে এই নির্দিষ্ট চ্যালেঞ্জটিতে ম্যাজিক স্ট্রিংটি নিজেই বাইট গণনায় অন্তর্ভুক্ত করা উচিত নয়।
int6h

2

সিজেম , 143 বাইট

"ORIA MINCALA MSCTNMNVAKY WAZ PAR FL GA NHID COKSD ME MDE MA MTX NE NJ NY ND MOH UT WVT WIL WY"q#g"I am not 
I am 
What is?"N/=)" an engineer"\

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

ব্যাখ্যা

"ORIA...."       e# Push a string in which every state is a substring, but no non-state is
                 e# a substring.
q                e# Read the input.
#                e# Find the index of the input in the string. (-1 if not found)
g                e# Signum of the index: -1 for negative, 0 for 0, 1 for positive.
"I am.... "      e# Push this string. Note the trailing space on the first two lines of it.
N/               e# Split it on newlines.
=                e# Get the string at index given by the signum.
)                e# Pull out the last character.
" an engineer"\  e# Push " an engineer" and bring the other character to the TOS.
                 e# Implicit output.

যেহেতু অরেগন ( OR) স্ট্রিংয়ের শুরুতে রয়েছে তাই ইনপুটটির সূচকের সাইনাম সন্ধান করা যদি খুঁজে না পাওয়া যায় তবে -1 হবে, ORঅন্য কোনও রাজ্যে যদি 0 হয় , 1 হবে। কোন স্ট্রিংটি মুদ্রণ করতে হবে তা দ্বারা সিদ্ধান্ত নেওয়া যেতে পারে।


2

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

$e=" an engineer";echo strpos(_TNNMLAALAKAZARCACOCTDEFLGAHIIDILINIAKSKYMEMDMAMIMNMSMOMTNENVNHNJNYNCNDOHOKORPARISCSDTXUTVTVAWAWVWIWY,$argn)&1?"I am".($argn!="OR"?"":" not").$e:"What is$e?";

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


in_array(...)to strpos(_AKALARAZCACOCTDEFLGAHIIAIDILINKSKYLAMAMDMEMIMNMOMSMTNCNDNENHNJNMNVNYOHOKPARISCSDTNTXUTVAVTWAWIWVWY,$argn)&1
ক্রিস্টোফ

@ ক্রিসটফ এলএ
জার্গ হালসারম্যান

এইচ এম ডান: / সম্ভবত আমরা স্ট্রিংটি কিছুটা পুনরায় অর্ডার করতে পারি .. আমি চেষ্টা করব। Js উত্তর বিটিডব্লুকেও অবৈধ করে।
ক্রিস্টোফ

_NMMNINTNRIHIMIWISCNCCTMTUTVTWVNVFLILCAALGAIAMAPAVAWACOLAMOAKARKSMSNHOHOKORAZDEIDKYMEMDNENJNYNDSDTXWYকাজ
ক্রিস্টোফ

@ ক্রিসটফ বা আমার অর্ডারও কাজ করে।
Jgrg Hülsermann

2

সি #, 178 বাইট

s=>(s=="OR"?"I am notx":"MINCALA MSCTNMNVAKY WAZ PARIA FL GA NHID COKSD ME MDE MA MTX NE NJ NY ND MOH UT WVT WIL WY".Contains(s)?"I amx":"What isx?").Replace("x"," an engineer");

সি # প্যাডে চালান

ময়ুবের সমাধানের ভিত্তিতে গল্ফ ; নতুন এখানে, যাতে আমার মতামত দেওয়ার মতো যথেষ্ট উত্তর নেই।


তার সমাধানের কোনও লিঙ্কে সম্পাদনা করতে পারে :) আপনি যদি তার সমাধানটিতে ভাগ করে নেওয়ার জন্য ক্লিক করেন তবে এটি আপনাকে সরাসরি এটির একটি লিঙ্ক দেয়।
স্টিফেন

@ স্টিফেনস টিপটির জন্য ধন্যবাদ!
আর্থার রম্প

2

হাস্কেল , 220 214 210 209 বাইট

s(a:b:c)=[a,b]:s(b:c)
s _=[]
a="I am "
e="an engineer "
i"OR"=a++"not "++e
i x|x`elem`s"MINCALA MSCTNMNVAKY WAZ PAR FL GA NHID COKSD ME MDE MA MTX NE NJ NY ND MOH RIA UT WVT WIL WY"=a++e
i _="What is "++e++"?"

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


অন্যথায় = সত্য, 1<2এমনকি আরও খাটো
ব্ল্যাকক্যাপ

ফেসপাম , ধন্যবাদ!
বার্তাভেল

আপনি ORআই
ব্ল্যাকক্যাপ

আমি অন্যান্য উত্তরগুলি থেকে দীর্ঘ স্ট্রিংটি চুরি করেছি। বা যদিও এর অংশ না?
বার্তাভেল

1
না, আর নয় :)
ব্ল্যাকক্যাপ

1

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

s=>{h=/^(A[LKZR]|C[AOT]|DE|FL|[GPLV]A|[HR]I|I[DLNA]|K[SY]|M[EDAINSOT]|N[EVHJMYCD]|O[HK]|S[CD]|T[NX]|[VU]T|W[AVIY]|(OR))$/.exec(s);return(!h?"What is ":"I am "+(h[2]?"not ":""))+"an engineer"+(!h?'?':'')}

1
খাঁটি অপ্টিমাইজ করুনs=>(!(h=/(A[LKZR]|C[AOT]|DE|FL|[GPLV]A|[HR]I|I[DLNA]|K[SY]|M[EDAINSOT]|N[EVHJMYCD]|O[HKR]|S[CD]|T[NX]|[VU]T|W[AVIY])/.test(s))?"What is":"I am"+(s=='OR'?" not":""))+" an engineer"+['?'[+h]]
l4m2

@ l4m2 সুন্দর, আমার উত্তরটি পেয়ে গেল।
মার্টিন

1

এডাব্লুকে, 189 বাইট

/A[LKZR]|C[AOT]|DE|FL|[GPV]A|HI|I[DLNA]|KS|KY|LA|M[EDAINSOT]|N[EVHJMYCD]|O[HKR]|RI|SC|SD|TN|TX|UT|VT|W[AVIY]/{print"I am "($0~OR?"not ":"")"an engineer";exit}
{print"What is an engineer?"}

ইনপুট যদি সমস্ত রাজ্যের সংক্ষিপ্ত বিবরণ সম্বলিত একটি রেজেক্সের সাথে মেলে, তবে "আমি প্রকৌশলী" প্রিন্ট করুন মাঝখানে একটি 'নয়' সন্নিবেশিত যদি রাজ্য ওরেগন হয় তবে প্রস্থান করুন।

যদি ইনপুটটি রেজেক্সের সাথে মেলে না, এটি অবশ্যই কোনও মার্কিন রাষ্ট্রের সংক্ষেপণ হবে না।


1

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

def f(x):s=x in('ALAKAZARCACOCTDEFLGAHIIDILINIAKSKYLAMEMDMAMIMNMSMOMTNENVNHNJNMNYNCNDOHOKORPARISCSDTNTXUTVTVAWAWVWIWY'[i:i+2]for i in range(0,100,2));o=x=='OR';q=(1-o)*(1-s);return q*'What is'+(1-q)*('I am'+o*' not')+' an engineer'+q*'?'

ব্যাখ্যা

কোনও সংকোচনের কৌশল ব্যবহৃত হয়নি।

def f(x):
    # Check if State
    s = x in ('ALAK...WIWY'[i:i+2]
              for i in range(0, 100, 2))

    # Check if Oregon
    o = x == 'OR'

    # Check if neither Oregon nor State
    q = (1-o) * (1-s)

    # Construct output string
    return q * 'What is' + \
        (1-q) * ('I am' + o * ' not') + \
        ' an engineer' + \
        q * '?'

এটি ওরেগন, ওহিও নয়।
L3viathan

1
@ এল 3 ভাইয়াথ নিশ্চিত নয় যে ওরেগনকে জীবনের কারণে সর্বত্র দেখার পরে আমি কীভাবে এই গোলমাল করলাম ... ¯ \ _ (ツ) _ / ¯
মাতেন উলহাক

1

জাভা, 173 বাইট

s->(!"MINCALARIA MSCTNMNVAKY WAZ PAR FL GA NHID COKSD ME MDE MA MTX NE NJ NY ND MOH UT WVT WIL WY OR".contains(s)?"What is":"I am"+(s.equals("OR")?" not":""))+" an engineer"

3
পিপিসিজিতে আপনাকে স্বাগতম! সমস্ত এন্ট্রি একটি পূর্ণ প্রোগ্রাম বা একটি ফাংশন হতে হবে; আমি বিশ্বাস করি আপনি এটিকে s->শুরুতে যুক্ত করে একটি বৈধ ল্যাম্বডা এক্সপ্রেশন (এবং তাই ফাংশন) রূপান্তর করতে পারেন ।
ETH প্রোডাকশনগুলি

1

স্ট্যাক্স , 100 বাইট

এই ভাষা চ্যালেঞ্জ পোস্ট করে দেয়। তবে লেখক (আমি) এখন পর্যন্ত এটি দেখতে পাইনি।

éë&W≈#W¬π█▐╜╣╟◙√a☻∞ZrπU♫ÿô♠▌⌠Që≡AûpI⌡ÄNA綵↑╝╣òøΩ.¬É]╩Æ↓d∩é¡2ŲeB┼¼▬5∟┤sW♠♂↑q▐WMï╝|Ñ↑╫+3¼↔îûvlLΩ∟┬oë

এটি চালান এবং এটি ডিবাগ করুন


1

জাভাস্ক্রিপ্ট ES6, 175 171 বাইট

x=>[`What is${e=" an engineer"}?`,`I am${x=="OR"?" not"+e:e}`][+!!'MINCALA MSCTNMNVAKY WAZ PAR FL GA NHID COKSD ME MDE MA MTX NE NJ NY ND MOH ORIA UT WVT WIL WY'.match(x)]

অনেক ভাল যোগদান করেছেন

অথবা আইএসও এনকোডিংয়ের 152 বাইট

জেনারেটর:

'x=>[`What is${e=" an engineer"}?`,`I am${x=="OR"?" not"+e:e}`][+!!btoa`*`.match(x)]'.replace('*',atob('MINCALA MSCTNMNVAKY WAZ PAR FL GA NHID COKSD ME MDE MA MTX NE NJ NY ND MOH ORIA UT WVT WIL WY '.replace(/ /g,'/')))

স্ট্রিংটি পুনরায় সাজানো সম্ভব হতে পারে যাতে বিটিওএ ব্যবহার করে প্রসারিত হয়
l4m2


1

পাওয়ারশেল, 175 বাইট

(('I am'+' not'*!($i='ORIA MINCALA MSCTNMNVAKY WAZ PAR FL GA NHID COKSD ME MDE MA MTX NE NJ NY ND MOH UT WVT WIL WY'.IndexOf($args))+($e=' an engineer')),"What is$e`?")[!++$i]

পরীক্ষার স্ক্রিপ্ট:

$f = {

$e=' an engineer'
$i='ORIA MINCALA MSCTNMNVAKY WAZ PAR FL GA NHID COKSD ME MDE MA MTX NE NJ NY ND MOH UT WVT WIL WY'.IndexOf($args)
(('I am'+' not'*!$i+$e),"What is$e`?")[!++$i]

# Important! OR is a first state in the modified @totallyhuman's genuis string

}

@(
    ,('OR', 'I am not an engineer')
    ,('AL', 'I am an engineer')
    ,('IL', 'I am an engineer')
    ,('ZZ', 'What is an engineer?')
) | % {
    $s,$e = $_
    $r = &$f $s
    "$($r-eq$e): $r"
}

আউটপুট:

True: I am not an engineer
True: I am an engineer
True: I am an engineer
True: What is an engineer?

0

পাইথন 3 , 236 182 181 বাইট

lambda s:'I am not'+e if s=='OR'else'I am'+e if s in'MINCALA MSCTNMNVAKY WAZ PAR FL GA NHID COKSD ME MDE MA MTX NE NJ NY ND MOH RIA UT WVT WIL WY'else'What is%s?'%e
e=' an engineer'

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

টিআইওতে সমস্ত রাজ্যের পরীক্ষার মামলা রয়েছে।
-54 বাইটস স্ট্রিং সংকোচনের জন্য ধন্যবাদ


বাইটগুলি সংরক্ষণ করতে আপনি অন্যান্য উত্তরগুলি থেকে স্ট্রিং সংক্ষেপণটি ব্যবহার করতে পারেন
TheLethalCoder

1
MINCALA MSCTNMNVAKY WAZ PAR FL GA NHID COKSD ME MDE MA MTX NE NJ NY ND MOH ORIA UT WVT WIL WYআরও ভাল কম্প্রেশন
স্কিডদেব

0

কিউ / কেডিবি +, 174 বাইট

সমাধান:

{a:" an engineer?";$[(#:)l:ss["ORIA MINCALA MSCTNMNVAKY WAZ PAR FL GA NHID COKSD ME MDE MA MTX NE NJ NY ND MOH UT WVT WIL WY";x];-1_"I am",$[l~(),0;" not";""],a;"What is",a]}

ব্যাখ্যা:

  {
  // save string into variable a
  a:" an engineer?";
  // try to find the input x in the condensed string, save location in variable l, $ is a if/else
  $[(#:)l:ss["ORIA MINCALA MSCTNMNVAKY WAZ PAR FL GA NHID COKSD ME MDE MA MTX NE NJ NY ND MOH UT WVT WIL WY";x];
  // found a match, check if it was at index 0 ('OR') and inject " not" if so, drop the '?' off the end
  -1_"I am",$[l~(),0;" not";""],a;
  // otherwise return 'What is an engineer?'
  "What is",a]
  }

নোট:

aভেরিয়েবলের অ্যাসাইনমেন্ট এড়ানোর জন্য এটি একটি একক লাইনে আনার কোনও উপায় খুঁজে পাওয়ার জন্য সংগ্রাম করে অন্যান্য উত্তর থেকে 'সঙ্কুচিত' স্ট্রিং ব্যবহার করুন (এখনও ?ইনপুটটি কোনও রাজ্য নয় , তখন যুক্ত করুন।


0

রেটিনা , 175 বাইট

..
I am $&~MINCALAZ SCT FL GA WIAKSD ME MD MA MNMS MOKY MTNE NVTX NH NJ NY ND COHIDE PARIL UT VA WA WV WY
(..)~.*\1.*
~
OR~.*
not ~
I am ..~.*
What is ~?
~
an engineer

এটি অনলাইন চেষ্টা করুন! আশা করি আমি সেরা রাষ্ট্রের তালিকাটি বরাদ্দ করেছি। ব্যাখ্যা:

..
I am $&~MINCALAZ SCT FL GA WIAKSD ME MD MA MNMS MOKY MTNE NVTX NH NJ NY ND COHIDE PARIL UT VA WA WV WY

ফলাফল তৈরি করা শুরু করুন। এছাড়াও, পরবর্তী পর্যায়ে ব্যবহারের জন্য রাজ্য তালিকা প্রবেশ করান।

(..)~.*\1.*
~

যদি এটি 49 টি রাজ্যের মধ্যে একটি হয় তবে রাষ্ট্রটি এবং তালিকাটি মুছুন।

OR~.*
not ~

যদি এটি ওরেগন হয় তবে এর সাথে রাজ্যটি প্রতিস্থাপন করুন notএবং তালিকাটি মুছুন।

I am ..~.*
What is ~?

যদি এটি অন্য কিছু হয় তবে অন্যান্য আউটপুট সহ সমস্ত কিছু প্রতিস্থাপন করুন।

~
an engineer

পুনরাবৃত্তি এড়াতে এই শব্দটি শেষের দিকে যুক্ত করুন।


0

ক্রিস্টাল, 232 207 205 বাইট

i="ORALAKAZARCACOCTDEFLGAHIIDILINIAKSKYLAMEMDMAMIMNMSMOMTNENVNHNJNMNYNCNDOHOKPARISCSDTNTXUTVTVAWAWVWIWY".split(/(..)/).index ARGV[0];p (i ?"I am ": "What is ")+(i==1 ?"not ": "")+"an engineer"+(i ?"": "?")

এটি অনলাইনে চেষ্টা করুন । (এআরজিভি ইস্যুর কারণে সামান্য সংশোধিত)


0

ফ্যাক্টর, 135 বাইট

USE: usa-cities [ " an engineer"swap [ "I am"swap string>state OR = 
[ " not"append ] when ""] [ 2drop "What is" "?"] recover surround ]

আরও পঠনযোগ্য, এবং নাম দেওয়া হয়েছে:

: engineer? ( state-name -- str ) 
  [ " an engineer" ] dip ! put this below the input on the stack 
  [ 
    [ "I am" ] dip       ! put this below the input too but above the other 
    string>state OR =    ! string>state throws on a non-state name 
    [ " not" append ] when ""  ! otherwise and if it is OR, append this 
  ] 
  [ 2drop "What is" "?" ] recover surround ; ! catch error, surround string

[ x ] dipএবং x swapস্ট্যাকের কার্যকর হয় সমতুল্য কিন্তু প্রথম খাটো শুধুমাত্র যখন নেস্টেড হল: [ [ [ x ] dip ] dip ] dip


0

পাইথন 2, 213 211 194 বাইট

c="uTXnMSCORIDEwVAKYmTNHILfLAZpALmNEmOKSDwINCARmEwAnJnDmAmIAgAwYcTnVToHnYmD"
r=(lambda x:x in c or x[0].lower()+x[1]in c)(i)^1
u="What is "*r+("I am "+"not "*(i=="OR"))*(r^1)+"an engineer"+"?"*r

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

স্টাফ আমি ছোট করার কাজ করছি:

  • (i=="OR")
  • or x[0].lower()+x[1]in c

হালনাগাদ:

  • প্রতিস্থাপন 2 বাইট সংরক্ষিত s=not rসঙ্গেs=r^1
  • পৃথক পৃথক শিরোনাম এবং কোডের পাদচরণ

0

রুবি, 164 বাইট

->s{r="What is an engineer?"
j=379
"##(*Q0'7q;N>%*$o(.F%#&'#&#5##%$%+%5%)5r@#P,B353*/%".bytes{|i|s==(j+=i-34).to_s(36).upcase&&r="I am not"[0,i==41?8:4]+r[7,12]}
r}

একটি রান দৈর্ঘ্যের এনকোডিং ব্যবহার করে, অতএব যাদু স্ট্রিং 50 বাইট দীর্ঘ, প্রতি রাজ্যে এক one এটি তৈরি করতে, প্রথমে রাষ্ট্রের কোডগুলি রাষ্ট্রের নামের পরিবর্তে রাষ্ট্রীয় কোডের বর্ণমালা অনুসারে রাখা দরকার ছিল। দুর্ভাগ্যক্রমে jএকটি ছোট হাতের স্টেটকোড থেকে বেস 36 টি উপস্থাপনাকে বড় হাতের স্টেটকোডে রূপান্তর করতে 7 বাইট প্রয়োজন are

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

f=->s{                                                  #s is the input string.
  r="What is an engineer?"                              #Set r to "What is an engineer?"
  j=379                                                 #Set j to one less than 380, which in base36 becomes AK, the first statecode alphabetically
  "##(*Q0'7q;N>%*$o(.F%#&'#&#5##%$%+%5%)5r@#P,B353*/%". #Iterate through the run length encoded string 
  bytes{|i|                                             #(each character represents how far in base 36 each state code is from the previous one)
    s==(j+=i-34).to_s(36).upcase&&                      #take the ascii value of the character and subtract 34 (example #=35-34=1) and add to j. Convert j to base36 to get a state code.
      r="I am not"[0,i==41?8:4]+r[7,12]                 #if the state code matches s, modify r. Take the first 4 characters of "I am not" (first 8 in the case of OR where i==41) 
  }                                                     #and add r[7,12]==" an engineer" (12 characters of the existing value of r, starting at character 7 
r}                                                      #return r

%w{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 XX}.map{|i|p [i,f[i]]}
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.