অনন্ত শব্দ খুঁজে!


36

(দ্রষ্টব্য: এটি আমার পূর্ববর্তী চ্যালেঞ্জের একটি স্পিন অফ যা ঘূর্ণায়মান শব্দগুলি সন্ধান করুন! )

অনন্ত শব্দের সংজ্ঞা :

  1. আপনি যদি বর্ণগুলির সাথে একটি ইনফিনিটি ওয়ার্ডের সমস্ত অক্ষর (এজেড) এর সাথে কার্ভগুলির সাথে সংযুক্ত হন তবে আপনি অনন্ত প্রতীকটি পাবেন - যেমন নীচের চিত্রগুলিতে।
  2. সমস্ত সমতুল্য সংযোগ অবশ্যই ডাউন হতে হবে , সমস্ত বিজোড় সংযোগ অবশ্যই আপ
  3. আপনি উপরের / ছোট হাতের বিষয়টি উপেক্ষা করতে পারেন বা সমস্তকে আপার কেস বা সমস্তকে ছোট ক্ষেত্রে রূপান্তর করতে পারেন।
  4. ইনপুট শব্দগুলি কেবলমাত্র জেড এর বর্ণমালা সীমার অক্ষর, কোনও স্থান, কোনও বিরামচিহ্ন বা চিহ্ন নয়।
  5. প্রতিটি শব্দ অবশ্যই 5 অক্ষর হতে হবে। শব্দ> 5 বা <5 টি বৈধ নয়।
  6. যদি কোনও শব্দের ধারাবাহিকভাবে দ্বিগুণ অক্ষর থাকে তবে শব্দটি "ফ্লুড" বা "কুইন" এর মতো বৈধ নয়।
  7. সমস্ত ইনফিনিটি শব্দ একই অক্ষর দিয়ে শুরু এবং শেষ হয়।

এখানে কিছু উদাহরণ রয়েছে:

অনন্ত শব্দ

টাস্ক:

একটি সম্পূর্ণ প্রোগ্রাম বা ফাংশন লিখুন যা স্ট্যান্ডার্ড ইনপুট থেকে একটি শব্দ নেবে এবং যদি ইনফিনিটি ওয়ার্ড হয় বা না হয় তবে আউটপুট আসবে । আউটপুটটি সত্য / মিথ্যা, 1/0, 1 / নাল ইত্যাদি হতে পারে

পরীক্ষার কেস:

Infinity Words:
ALPHA, EAGLE, HARSH, NINON, PINUP, RULER, THEFT, WIDOW

NOT Infinity Words:
CUBIC, ERASE, FLUFF, LABEL, MODEM, RADAR, RIVER, SWISS, TRUST, 
KNEES, QUEEN, GROOVE, ONLY, CHARACTER, OFF, IT, ORTHO

নিয়মাবলী:

  1. সংক্ষিপ্ততম কোড জিতেছে।

Ptionচ্ছিক কার্য:

একটি ইংরেজী অভিধানে আপনি যতটা অনন্ত শব্দ পেতে পারেন , একটি তালিকা হিসাবে সন্ধান করুন । আপনি রেফারেন্স হিসেবে ইংরেজি শব্দ সম্পূর্ণ তালিকা উদাহরণস্বরূপ নিতে পারেন এখানে


আমরা কি ধরে নিতে পারি ইনপুটটি সর্বদা দৈর্ঘ্যের 5? আপনি নিয়ম 5 সংজ্ঞায়িত করেছেন: " প্রতিটি শব্দ ঠিক 5 অক্ষরের হতে হবে শব্দ> 5 বা <5 বৈধ নয়।। ", কিন্তু কোন না অসীম শব্দ কম বা তার বেশি 5 অক্ষরের বেশি রয়েছে।
কেভিন ক্রুইজসেন

4
খুব মজাদার যে ALPHA সেই প্যাটার্নটি তৈরি করে
17:49

@ কেভিন ক্রুজসেন আপনার অবশ্যই পরীক্ষা করে নিন যে শব্দটি সংজ্ঞাটির প্রতি শ্রদ্ধা জানায়, আমি মিথ্যা মামলাগুলি আপডেট করেছি।
মারিও

1
@ আর্নল্ড পাঁচটি "এ" তাদের সাথে সংযোগ স্থাপন করেছে (বা কিছুতেই এগোচ্ছে না) একটি বিন্দু তৈরি করে, এটি অনন্ত প্রতীক আঁকায় না, সুতরাং আমি মনে করি এটি একটি ইতিবাচক ঘটনা নয়।
মারিও

3
আমি ptionচ্ছিক টাস্কটি সামাল দেওয়ার সিদ্ধান্ত নিয়েছি: "একটি ইংরাজী অভিধানে আপনি যতটা ইনফিনিটি শব্দ পারেন তার তালিকা হিসাবে একটি তালিকা হিসাবে সন্ধান করুন ..." 278 ইনফিনিটি শব্দের এই তালিকাটি তৈরি করার জন্য আমি এই উত্স এবং কেভিন ক্রুইজসেনের উত্তরটি ব্যবহার করেছি ।
থমাস কুইন কেলি

উত্তর:


19

জেলি , 43 41 40 25 24 23 22 21 14 13 বাইট

-7 বাইট ফায়ার ফ্লেম 241 ( 0ị=1ị$-> =ṚḢএবং IIA⁼2,24 টি ঘূর্ণন পরীক্ষা করার জন্য ব্যবহারের জন্য ধন্যবাদ )

-1 কেভিন ক্রুইজসেনকে ধন্যবাদ (পূর্বে অনুপলব্ধ নীলাদ ব্যবহার Ø2যা ফলন দেয় [2,2])

=ṚḢȧOIṠIIA⁼Ø2

ট্রাইটাইনলাইন
অথবা সমস্ত পরীক্ষার কেস (প্লাস "RULES")

কিভাবে?

একটি অনন্ত শব্দের রয়েছে:

  1. একই প্রথম এবং শেষ চিঠি;
  2. দৈর্ঘ্য 5;
  3. একে অপরের পাশে সমান বর্ণ নেই;
  4. এর চারটি বর্ণমালার সমান শূন্যের সমান;
  5. এর চারটি বর্ণমালা ডেল্টাস চিহ্নের সমান শূন্যের সমান;
  6. দুটি ধনাত্মক বর্ণমালা ডেল্টাস বা দুটি সারিতে দুটি নেতিবাচক বর্ণমালা ডেল্টাস।

সকল কিন্তু (1) এবং (equivalently) (4) নিচে একটি শর্ত সেদ্ধ করা যায় যে বর্ণমালা ব-দ্বীপ লক্ষণ কিছু ঘূর্ণন হয় [1,1,-1,-1](যেখানে চিহ্ন 0নেই 0)

ফায়ার ফ্লেম 241 উল্লেখ করেছে যে এটি তখন বর্ণমালার বদ্বীপের চিহ্নগুলির ডেল্টাসের সমান, [[2,2],[2,-2],[-2,2],[-2,-2]]যেখানে পরম মানগুলির সমান হয়ে পরীক্ষা করা যেতে পারে [2,2]!

কিভাবে?

=ṚḢȧOIṠIIA⁼Ø2 - Main link: word
 Ṛ            - reverse word
=             - equals? (vectorises)
  Ḣ           - head (is the first character equal to the last?)
   ȧ          - and
    O         - cast word to ordinals
     I        - increments - the alphabet deltas (or just [] if 1st != last)
      Ṡ       - sign (vectorises)
       I      - increments - deltas of those signs
        I     - increments - deltas of those
         A    - absolute value (vectorises)
           Ø2 - literal [2,2]
          ⁼   - equals? (non-vectorising version)

কিভাবে কাজ করে?
অলিভার নি

আগত ব্যাখ্যা
জোনাথন অ্যালান

2
@ প্যাসক্লভকুটেন এটি বেশিরভাগ মজাদার জন্য এবং কোড গল্ফের প্রতিযোগিতামূলক হওয়ার জন্য - আমি কোড গল্ফ এবং জেলি উভয়ের কাছেই মোটামুটি নতুন, তাই জেলি প্রোগ্রাম একসাথে রাখা প্রায় প্রতিবারই একটু ধাঁধার মতো; আমি এটি সন্তুষ্টিজনক মনে হয়। যদি কেউ এই গেমটি থেকে বাস্তবের বাইরে কিছু পেতে চায় তবে সেটির দক্ষতাটিকে এমন একটি ভাষায় দক্ষ করার জন্য ব্যবহার করা উচিত যা বাস্তব জগতে বেশি ব্যবহৃত হয় যদিও, বা অবশ্যই নিজের একটি গল্ফ ভাষা তৈরি করতে পারে!
জোনাথন অ্যালান

1
@ লুইস 6 বি :)। আপনি টিউটোরিয়াল দিয়ে শুরু করুন এবং তারপরে পরমাণু সংজ্ঞা , কুইকস সংজ্ঞা সহ পৃষ্ঠাগুলি ব্যবহার করুন এবং উত্স কোডটি ব্রাউজ করুন ।
জোনাথন অ্যালান

1
14 বাইট এখানে মূল গল্ফ II1,1, -1, -1 এর ঘূর্ণনের সমতার জন্য পরীক্ষা করতে ব্যবহার করে।
ফায়ার ফ্লেম 241

11

জাভা 8, 231 193 185 122 103 78 বাইট

s->s.length==5&&(s[1]-s[0])*(s[3]-s[2])<0&(s[2]-s[1])*(s[4]-s[3])<0&s[4]==s[0]

এখানে চেষ্টা করুন।

-38 বাইটস @ dpa97 এরchar[] পরিবর্তে আমাকে ব্যবহারের জন্য মনে করিয়ে দেওয়ার জন্য ধন্যবাদ String
-63 by কার্লনাপফের উত্সযুক্ত সূত্রকে ধন্যবাদ বাইটস ।
এটি জাভা 7 থেকে জাভা 8 তে রূপান্তর করে 25 বাইট করুন (এবং এখন পূর্ণসংখ্যার পরিবর্তে একটি বুলিয়ান ফিরে আসছেন)।

193 বাইট উত্তর:

int c(char[]s){if(s.length!=5)return 0;int a=s[0],b=s[1],c=s[2],d=s[3],e=s[4],z=b-a,y=c-b,x=d-c,w=e-d;return e!=a?0:(z>0&y>0&x<0&w<0)|(z<0&y>0&x>0&w<0)|(z>0&y<0&x<0&w>0)|(z<0&y<0&x>0&w>0)?1:0;}

ব্যাখ্যা:

  • স্ট্রিংয়ের দৈর্ঘ্য 5 না হলে আমরা ফিরে আসি false
  • যদি প্রথম অক্ষর শেষ অক্ষরের সমান না হয় তবে আমরা ফিরে আসি false
  • তারপরে আমরা একে একে চারটি বৈধ কেস পরীক্ষা করে দেখি (আসুন পাঁচটি অক্ষরকে 1 থেকে 5 হিসাবে চিহ্নিত করুন) এবং trueযদি এটির কোনওটির সাথে সম্মতি দেয় তবে ফিরে আসুন (এবং falseঅন্যথায়):
    1. যদি পাঁচটি অক্ষর বিতরণ করা হয় যেমন: 1<2<3>4>5(যেমন ALPHA)
    2. পাঁচটি অক্ষর মত বিতরণ করা হয় এমন: 1>2<3<4>5(অর্থাত EAGLE, HARSH, NINON, PINUP)
    3. যদি পাঁচটি অক্ষর বিতরণ করা হয় যেমন: 1<2>3>4<5(যেমন RULER)
    4. যদি পাঁচটি অক্ষর বিতরণ করা হয় যেমন: 1>2>3<4<5(যেমন THEFT, WIDOW)

এই চারটি নিয়মকে সরলীকৃত করা যেতে পারে 1*3<0 and 2*4<0( @ কার্লন্যাপফের পাইথন 2 উত্তরের জন্য ধন্যবাদ )।


2
অব্যক্ত ডাউনভোটকে ক্ষতিপূরণ দেওয়ার জন্য +1 ... যতদূর আমি বলতে পারি এটি একটি নিখুঁত কার্যকরী সমাধান।
আরনাউল্ড

1
আমি এটিকে 215 এ নামিয়ে একটি চরে রূপান্তর করেছি [] চর [] চরিত [] সি = এস.টোচারার (); ইন্ট জেড = সি [1] -সি [0], ওয়াই = সি [২] -সি [1] ,. ..
dpa97

@ dpa97 এর char[]পরিবর্তে ইনপুট হিসাবে ব্যবহারের অনুস্মারকটির জন্য ধন্যবাদ String। -38 বাইটস আপনাকে ধন্যবাদ।
কেভিন ক্রুইজসেন

1
আপনার বুলিয়ানগুলি অনুকূলিত করা যেতে পারে: z,xএবং w,yএটির একটি বিকল্প চিহ্ন থাকতে হবে, তাই এটি পরীক্ষা করা যথেষ্ট z*x<0এবংw*y<0
কার্ল নেপফ

@ কার্লনাপফ আহ, আমি কয়েক ঘন্টা আগে আপনার মন্তব্যটির ভুল ব্যাখ্যা দিয়েছি। আমি আপনার উত্সাহিত সূত্রটি এক বৃহত্ -৩63 বাইটের জন্য প্রয়োগ করেছি। :) ধন্যবাদ।
কেভিন ক্রুইজসেন

4

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

ইসমাইল মিগুয়েলকে 2 বাইট সংরক্ষণ করা হয়েছে

s=>(k=0,[...s].reduce((p,c,i)=>(k+=p>c?1<<i:0/(p<c),c)),k?!(k%3)&&!s[5]&&s[0]==s[4]:!1)

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

আমরা kস্ট্রিংয়ের 5 টি অক্ষরের মধ্যে 4 রূপান্তরগুলি উপস্থাপন করে একটি 4-বিট বিটমাস্ক তৈরি করি :

k += p > c ? 1<<i : 0 / (p < c)
  • পূর্বের অক্ষরটি যদি পরবর্তী বর্ণের চেয়ে বেশি হয় তবে বিট সেট করা হবে
  • পূর্বের অক্ষরটি যদি কম থাকে তবে পরের অক্ষরটি, বিট সেট করা হয় না
  • পূর্বের চরিত্রটি যদি পরেরটির মতো হয় তবে পুরো বিটমাস্কটি বাধ্য হয় NaNযাতে শব্দটি প্রত্যাখ্যান করা হয় (নিয়ম # 6 মেনে চলার জন্য)

বৈধ বিটমাস্কগুলি হ'ল দুটি ধারাবাহিক 1রূপান্তর রয়েছে (প্রথম এবং শেষ বিটগুলিও পরপর হিসাবে বিবেচিত হচ্ছে ):

Binary | Decimal
-------+--------
0011   | 3
0110   | 6
1100   | 12
1001   | 9

অন্য কথায়, এটি সংমিশ্রণগুলি যা:

  • k? : 0 এর চেয়ে বড়
  • !(k%3): 0 মডিউল 3 অনুসারে
  • 15 এর চেয়ে কম

অন্যান্য শর্তগুলি হ'ল:

  • !s[5] : 5 টির বেশি অক্ষর নেই
  • s[0]==s[4] : 1 ম এবং 5 ম অক্ষর অভিন্ন

নোট : আমরা স্পষ্টভাবে চেক করি না k != 15কারণ এ জাতীয় প্যাটার্ন অনুসরণকারী কোনও শব্দই এই শেষ শর্ত দ্বারা প্রত্যাখ্যান করা হবে।

পরীক্ষার মামলা

প্রাথমিক সংস্করণ

রেকর্ডের জন্য, আমার প্রাথমিক সংস্করণটি ছিল 63 বাইট। এটি সমস্ত পরীক্ষার কেস সাফল্যের সাথে অতিক্রম করছে তবে পরপর অভিন্ন চরিত্রগুলি সনাক্ত করতে ব্যর্থ।

([a,b,c,d,e,f])=>!f&&a==e&&!(((a>b)+2*(b>c)+4*(c>d)+8*(d>e))%3)

নীচে মন্তব্যগুলিতে নীল দ্বারা প্রস্তাবিত একটি 53-বাইট সংস্করণ দেওয়া হয়েছে, যা সমানভাবে ভাল কাজ করে (এবং ব্যর্থ হয়):

([a,b,c,d,e,f])=>!f&&a==e&&!((a>b)-(b>c)+(c>d)-(d>e))

সম্পাদনা করুন: উপরের কোডটির স্থির / সমাপ্ত সংস্করণটির জন্য নীলের উত্তর দেখুন ।


00000 টি মডুলো 3 তেও একত্রিত হয় তবে আবার আপনার প্রথম এবং শেষের অক্ষর একই হতে পারে না, সুতরাং 15 এর মতো আপনার এটির জন্য স্পষ্টভাবে পরীক্ষা করার দরকার নেই।
নিল

প্রাথমিক সংস্করণটির জন্য, আপনি কি ব্যবহার করতে পারেন !((a>b)-(b>c)+(c>d)-(d>e))?
নীল

p<c?0:NaNহিসাবে লেখা যেতে পারে 0/(p<c), যা 2 বাইট সংরক্ষণ করে।
ইসমাইল মিগুয়েল

@ নীল 0 এর বিরুদ্ধে পরীক্ষার বিষয়ে: আপনি একদম ঠিক বলেছেন। (তবে, k?সম্ভাব্যতার কারণে আমার পরীক্ষা দরকার NaN)) আপনার বিকল্প সংস্করণ সম্পর্কে: এটি সত্যই কাজ করা উচিত।
আর্নল্ড

@ ইসমাইলমিগুয়েল - শুভ কল! ধন্যবাদ।
আর্নল্ড

4

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

([a,b,c,d,e,f])=>a==e&&!(f||/(.)\1/.test(a+b+c+d+e)||(a>b)-(b>c)+(c>d)-(d>e))

@ আরনাউল্ডের ভুল কোডের ভিত্তিতে, তবে গল্ফ করেছে এবং সংশোধন হয়েছে। প্রথম অক্ষরটি পঞ্চম সমান (এইভাবে 5 টি অক্ষরের গ্যারান্টি দেয়) এবং স্ট্রিংটির দৈর্ঘ্য 5-এর বেশি নয় বলে পরীক্ষা করে কাজ করে একটানা নকল অক্ষরগুলি পরীক্ষা করার পরে এটি স্ট্রিংয়ের বেহালতা যাচাই করে যায়, যার একটি শিখর এবং একটি গর্ত দুটি অক্ষর পৃথক থাকতে হবে।

  • শিখর এবং গর্তটি যদি মাঝের এবং প্রথম / শেষ বর্ণ হয় তবে প্রথম দুটি তুলনা এবং শেষ দুটি তুলনা বাতিল হয়ে যাবে
  • শিখর এবং গর্তটি যদি দ্বিতীয় এবং চতুর্থ বর্ণ হয় তবে মাঝের দুটি তুলনা এবং বাইরের দুটি তুলনা বাতিল হয়ে যাবে
  • অন্যথায়, কিছু বাতিল করতে ব্যর্থ হয় এবং সামগ্রিক প্রকাশটি মিথ্যা প্রত্যাবর্তন করে

সম্পাদনা: @ কার্লনাপফের উত্তরের ভিত্তিতে বিকল্প 78-বাইট সমাধান:

([a,b,c,d,e,f],g=(a,b)=>(a<b)-(a>b))=>a==e&&!f&&g(a,b)*g(c,d)+g(b,c)*g(d,e)<-1

3

পাইথন 2 প্রস্থান কোড, 56 বাইট

s=input()
v,w,x,y,z=map(cmp,s,s[1:]+s[0])
v*x+w*y|z>-2>_

প্রস্থান কোডের মাধ্যমে আউটপুট: মিথ্যা জন্য ত্রুটি, এবং সত্যের জন্য সফল রান।

sঅক্ষরগুলির সাথে স্ট্রিং নেয় abcde, এটিকে bcdeaআবর্তিত করে, আনুপাতিক অক্ষরগুলির সাথে একটি এলিমেন্টের তুলনা করে এবং তাদের পাঁচটি ভেরিয়েবলগুলিতে বরাদ্দ করে v,w,x,y,z। ভুল দৈর্ঘ্য একটি ত্রুটি দেয়।

সমস্ত অসীমের কথা আছে

v*x == -1
w*y == -1
z == 0

যা হিসাবে যৌথভাবে পরীক্ষা করা যেতে পারে v*x+w*y|z == -2। শৃঙ্খলাবদ্ধ তুলনা v*x+w*y|z>-2>_শর্ট সার্কিট যদি এটি হয় এবং অন্যথায় -2>_যা ত্রুটি দেয় নাম নির্ধারণ করে।


আহা, আপনি কতটা শর্তসাপেক্ষে আরও গল্ফ করেছেন তা দুর্দান্ত!
কার্ল ন্যাপফ

3

পাইথন 2, 110 87 60 বাইট

নীলকে ধন্যবাদ 1 বাইট সংরক্ষণ করা

উদ্ধৃতিতে আবদ্ধ ইনপুট প্রয়োজন, যেমন 'KNEES'

Trueযদি এটি একটি অনন্ত শব্দ হয়, Falseযদি না হয় এবং এর দৈর্ঘ্য 5 হয় এবং ভুল দৈর্ঘ্যটি থাকলে ত্রুটি বার্তা প্রিন্ট করে

s=input()
a,b,c,d,e=map(cmp,s,s[1:]+s[0])
print a*c+b*d|e<-1

এক্সনরের উত্তর ব্যবহার করে অনুপ্রাণিতmap(cmp...

s=input()
e=map(cmp,s,s[1:]+s[0])
print e[4]==0and e[0]*e[2]+e[1]*e[3]==-2and 5==len(s)

পূর্ববর্তী সমাধান:

s=input()
d=[ord(x)-ord(y)for x,y in zip(s,s[1:])]
print s[0]==s[4]and d[0]*d[2]<0and d[1]*d[3]<0and 4==len(d)

কেভিন ক্রুইজসেনের অনুকূলিত যুক্তি ব্যবহার করে


কেন হবে না a*c+b*d+2==0==e?
নিল

@ নীল হ্যাঁ কেন নয়, তবে এক্সনোরগুলি a*c+b*d|eআরও খাটো।
কার্ল ন্যাপফ

আমি মনে করি কার্যকর <-1হতে পারে, যেহেতু উভয় -2|1এবং -2|-1সমান -1
নিল


2

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

lambda s:map(cmp,s,s[1:]+s[0])in[[m,n,-m,-n,0]for m in-1,1for n in-1,1]

sঅক্ষরগুলির সাথে স্ট্রিং নেয় abcde, এটিকে bcdeaআবর্তিত করে এবং আনুপাতিক অক্ষরের সাথে একটি এলিমেন্টের তুলনা করে।

a  b   cmp(a,b)
b  c   cmp(b,c)
c  d   cmp(c,d)
d  e   cmp(d,e)
e  a   cmp(e,a)

ফলাফল একটি তালিকা -1, 0, 1। তারপরে, ফলাফলটি উত্থান-পতনের বৈধ ধারাগুলির মধ্যে একটি কিনা তা পরীক্ষা করে দেখুন:

[-1, -1, 1, 1, 0]
[-1, 1, 1, -1, 0]
[1, -1, -1, 1, 0]
[1, 1, -1, -1, 0]

যেমন টেমপ্লেট থেকে উত্পন্ন [m,n,-m,-n,0]সঙ্গে m,n=±1। সর্বশেষ 0চেকগুলি যে প্রথম এবং শেষ বর্ণটি সমান ছিল এবং দৈর্ঘ্যটি নিশ্চিত করে যে ইনপুট স্ট্রিংটির দৈর্ঘ্য 5 ছিল।


একটি বিকল্প 71. সঠিক দৈর্ঘ্য নিশ্চিত করার সাথে তুলনা করার শর্তগুলি পরীক্ষা করে।

def f(s):a,b,c,d,e=map(cmp,s,s[1:]+s*9)[:5];print a*c<0==e>b*d>len(s)-7

1

আর, 144 বাইট

উত্তরটি @ জোনাথন অ্যালান এর যুক্তি ভিত্তিক। এটি সম্ভবত গল্ফ করা যেতে পারে।

s=strsplit(scan(,""),"")[[1]];d=diff(match(s,LETTERS));s[1]==tail(s,1)&length(s)==5&all(!rle(s)$l-1)&!sum(d)&!sum(sign(d))&any(rle(sign(d))$l>1)

আর-বেহালার পরীক্ষার বিষয় (ভেক্টরকৃত উদাহরণ কিন্তু একই লজিক)


আপনি ইতিমধ্যে একটি চেক যেহেতু যে length(s)==5, আপনি প্রতিস্থাপন করতে পারেন s[1]==tail(s,1)সঙ্গে s[1]==s[5]। দৈর্ঘ্যটি যাচাই করার জন্য একটি বাইট বাইরের খাটো পদ্ধতি is.na(s[6])। একসাথে এই দুই পরিবর্তন আসতে TRUEজন্য sদৈর্ঘ্য 5 ঠিক এবং FALSE, অন্যথায় যেমন TRUE&NAহয় NAকিন্তু FALSE&NAহল FALSE। এছাড়াও আপনি প্রতিস্থাপন কয়েক বাইট সংরক্ষণ করতে পারবেন !sum(sign(d))&any(rle(sign(d))$l>1)সঙ্গে !sum(a<-sign(d))&any(rle(a)$l>1)
rturnbull

1

জিএনইউ প্রোলগ, 47 বাইট

i([A,B,C,D,A]):-A>B,B>C,C<D,D<A;i([B,C,D,A,B]).

একটি ক্রিকেট সংজ্ঞায়িত করেiএকটি অনাহার শব্দের যা একটি অনন্ত শব্দের জন্য সাফল্য লাভ করে (অসীমভাবে বহুবার, বাস্তবে), এইভাবে দোভাষী থেকে চালানোর সময় "হ্যাঁ" আউটপুট আউট করে (যেমন প্রোলোগের পক্ষে যথারীতি); এমন প্রার্থীর শব্দের জন্য ব্যর্থ হয় যার প্রথম এবং শেষ বর্ণগুলি মেলে না, বা 5 টি অক্ষর দীর্ঘ নয়, এভাবে দোভাষী থেকে চালিত হলে "না" আউটপুট দেয়; এবং কোনও স্ট্যান্ড ওভারফ্লো দিয়ে ক্র্যাশ করে যদি কোনও প্রার্থীকে এমন শব্দ দেওয়া হয় যা অনন্ত শব্দ নয়, তবে এটি প্রথম এবং শেষ দুটি মিলের সাথে পাঁচটি অক্ষর। (আমি নিশ্চিত না কেনএটি বিপর্যস্ত; পুনরাবৃত্তি কলটি একটি টেলক্যাল হিসাবে আচরণযোগ্য। স্পষ্টতই জিএনইউ প্রোলোগের অপ্টিমাইজার খুব ভাল নয়)) সফলতা হ'ল প্রোলোগের সত্যতার সমতুল্য এবং মিথ্যাটির সমতুল্য ব্যর্থ হওয়া; ক্র্যাশ অবশ্যই সত্যের চেয়ে মিথ্যা, এবং এটি সমাধান করা সমাধানটিকে যথেষ্ট দীর্ঘায়িত করবে, তাই আমি আশা করি এটি একটি বৈধ সমাধান হিসাবে গণ্য হবে।

অ্যালগরিদম মোটামুটি সহজ (এবং প্রকৃতপক্ষে, প্রোগ্রামটি মোটামুটি পঠনযোগ্য); অক্ষরগুলি চারটি নিদর্শনগুলির মধ্যে একটি তৈরি করেছে কিনা তা পরীক্ষা করুন যা একটি অনন্ত শব্দ তৈরি করে এবং যদি তা না হয় তবে চক্রাকারে অনুমতি দিন এবং আবার চেষ্টা করুন। আমরা স্পষ্টভাবে ডবল অক্ষর জন্য চেক করতে যেমন প্রয়োজন হবে না <এবং >অপারেটরদের আমাদের পরোক্ষভাবে একই সময় যে আমরা চেক করুন যে বদ্বীপ মেলে যে পরীক্ষা করা যাক।


1

আসলে , 38 27 বাইট

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

O;\♀-dY@♂s4R`0~;11({k`Míub*

Ungolfing

     Implicit input s.
O    Push the ordinals of s. Call this ords.
;    Duplicate ords.
\    Rotate one duplicate of ords left by 1.
♀-   Vectorized subtraction. This effectively gets the first differences of ords.
d    Pop ord_diff[-1] onto the stack. This is ords[0] - ords[-1].
Y    Logical negate ord_diff[-1], which returns 1 if s[0] == s[-1], else 0.
@    Swap (s[0] == s[-1]) with the rest of ord_diff.

♂s       Vectorized sgn() of ord_diff. This gets the signs of the first differences.
4R       Push the range [1..4] onto the stack.
`...`M   Map the following function over the range [1..4]. Variable x.
  0~;      Push -1 onto the stack twice.
  11       Push 1 onto the stack twice.
  (        Rotate x to TOS.
  {        Rotate the stack x times, effectively rotating the list [1, 1, -1, -1].
  k        Wrap it all up in a list.

     Stack: list of rotations of [1, 1, -1, -1], sgn(*ord_diff)
í    Get the 0-based index of sgn(*ord_diff) from the list of rotations. -1 if not found.
ub   This returns 1 only if sgn(*ord_diff) was found, else 0.
     This checks if the word loops like an infinity word.

*    Multiply the result of checking if the word s loops and the result of s[0] == s[-1].
     Implicit return.


1

টিআই-বেসিক, ৮১ বাইট

প্রোগ্রামটি পাস করার স্ট্রিং উত্তরগুলিতে রয়েছে। প্রদত্ত শব্দটি যদি একটি ইনফিনিটি ওয়ার্ড হয় এবং যদি 0 (বা কোনও ত্রুটির বার্তা দিয়ে বেরিয়ে আসে) না হয় তবে (এবং স্পষ্টভাবে প্রদর্শন করে) 1 প্রদান করে।

seq(inString("ABCDEFGHIJKLMNOPQRSTUVWXYZ",sub(Ans,A,1)),A,1,length(Ans
min(Ans(1)=Ans(5) and {2,2}=abs(deltaList(deltaList(deltaList(Ans)/abs(deltaList(Ans

কোনও পুনরাবৃত্ত অক্ষর বা 5-অক্ষর-শব্দগুলির ত্রুটি।


1

05 এ বি 1 ই , 16 বাইট

Ç¥DO_s.±¥¥Ä2DиQ*

@ জোনাথন অ্যালান এর জেলি উত্তর বন্দর ।

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

ব্যাখ্যা:

Ç             # Convert the (implicit) input string to a list of unicode values
              #  i.e. "RULES" → [82,85,76,69,82]
 ¥            # Take the deltas
              #  i.e. [82,85,76,69,82] → [3,-9,-7,13]
  DO          # Duplicate and take the sum
              #  i.e. [3,-9,-7,13] → 0
    _         # Check if that sum is exactly 0
              # (which means the first and last characters are equal)
              #  i.e. 0 and 0 → 1 (truthy)
 s            # Swap so the deltas are at the top of the stack again
            # Get the sign of each
              #  i.e. [3,-9,-7,13] → [1,-1,-1,1]
    ¥         # Get the deltas of those signs
              #  i.e. [1,-1,-1,1] → [-2,0,2]
     ¥        # And then get the deltas of those
              #  i.e. [-2,0,2] → [2,2]
      Ä       # Convert them to their absolute values
       2Dи    # Repeat the 2 two times as list: [2,2]
          Q   # Check if they are equal
              #  i.e. [2,2] and [2,2] → 1 (truthy)
 *            # Check if both are truthy (and output implicitly)
              #  i.e. 1 and 1 → 1 (truthy)
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.