আমি কিছুক্ষন ধরে বর্ণমালা শিকার করেছি


18

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

আপনি আমার জন্য কিছু বর্ণমালা সন্ধান করতে চলেছেন, এবং অটোমেশনের জন্য (এবং গৌরব জন্য!) বর্ণমালা কৌতুকপূর্ণ এবং তাদের ছদ্মবেশ ধারণ করতে পছন্দ করে। [উদ্ধৃতি-প্রয়োজনীয়] আপনাকে নিম্নলিখিত বিষয়গুলির জন্য অ্যাকাউন্ট করতে হবে:

  1. বর্ণমালা বড় হাতের বা ছোট হাতের অক্ষর হতে পারে (তবে উভয়ই নয়)। সুতরাং, আপনার সন্ধান করা দরকার ABCDEFGHIJKLMNOPQRSTUVWXYZএবং abcdefghijklmnopqrstuvwxyz, তবে তা নয় AbCdeFGhIJkLmNOpQRsTuvwxyZ। এটি হ'ল কেবলমাত্র বর্ণমালাগুলি সন্ধান করুন যা সম্পূর্ণভাবে একটি ক্ষেত্রে গঠিত of
  2. বর্ণমালা চারপাশে স্থানান্তর করতে পারেন। এগুলি সর্বদা শুরু না Aহলেও এর পরিবর্তে Gবা দিয়ে শুরু হতে পারে U। সুতরাং আপনি মত জিনিস সন্ধান করতে হবে OPQRSTUVWXYZABCDEFGHIJKLMN
  3. বর্ণমালা সবসময় এগিয়ে না পড়তে পারে। তারা পিছনে, উপরে এবং নীচেও পড়তে পারে। যেমন, ZYXWVUTSRQPONMLKJIHGFEDCBAএকটি বৈধ বর্ণমালাও।

বর্ণমালা রয়েছে এমন স্ট্রিংয়ের উদাহরণ এখানে:

JIHGFEDCBAZYXWVUTSRQPONMLK

এটি একটি পশ্চিমে কেন্দ্রিক, স্থানান্তরিত বর্ণমালা:

JIHGFEDCBAZYXWVUTSRQPONMLK
<--------|<---------------

এই এছাড়াও একটি বর্ণমালা রয়েছে:

F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
A
B
C
D
E

এটি একটি নিম্নমুখী বর্ণমালা:

F |
G |
H |
I |
J |
K |
L |
M |
N |
O |
P |
Q |
R |
S |
T |
U |
V |
W |
X |
Y |
Z V
A===
B |
C |
D |
E V

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

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

Truthy

ABCDEFGHIJKLMNOPQRSTUVWXYZ

abcdefghijklmnopqrstuvwxyz

ABCDEFGHIJKLMNOPQRSTUVWXYabcdefghijklmnopqrstuvwxyz

ZABCDEFGHIJKLMNOPQRSTUVWXYghijklmnopqrstuvwxyzabcdef

ZBCDEFGHIJghijklmnopqrstuvwxyzabcdef

AAAAAAAA
BBBBBBBB
CCCCCCCC
DDDDDDDD
EEEEEEEE
FFFFFFFF
GGGGGGGG
HHHHHHHH
IIIIIIII
JJJJJJJJ
KKKKKKKK
LLLLLLLL
MMMMMMMM
NNNNNNNN
OOOOOOOO
PPPPPPPP
QQQQQQQQ
RRRRRRRR
SSSSSSSS
TTTTTTTT
UUUUUUUU
VVVVVVVV
WWWWWWWW
XXXXXXXX
YYYYYYYY
ZZZZZZZZ

 J54
 Igeh
 H
 G
 Fzx6
 E
 Dv
 Cvzxc
 Bs
 Adf
 Z
@Yascvf
 Xsf
 W
 Vfas
 Uw
 Te
~S
 R
 Qasdfasdf
 P
 O
 N
 M
 LMNOPQR
 K

Falsey

Hello, World!

KLMNOPQRSTUVWXYZABCDEF

K        ZYXW
 L         V
  M       U
   N     T
    O   S
     P R
      Q

A
 BCDEFGHIJKLMNOPQRSTUVWXYZ

ABCDEFGHIJKLmnopqrstuvwxyz

16
"আমি বর্ণমালার চ্যালেঞ্জের দ্বারা অসুস্থ Here এখানে বর্ণমালার চ্যালেঞ্জ।" lol +1
অ্যাডমবর্কবর্ক

আমরা কি ইনপুটটি একটি আয়তক্ষেত্র গঠনের জন্য ফাঁকা স্থান দিয়ে প্যাড করতে পারি? : 3
ডাউনগোট

@ ডাউনগোট হ্যাঁ, আপনি পারেন
কনর ও'ব্রায়ান


1
আমরা কি স্ট্রিংগুলির 2D অ্যারে নিতে পারি? প্রতিটি সারিটি একটি লাইন হবে, আয়তক্ষেত্র গঠনের জন্য ফাঁকা স্থানগুলির সাথে ডান-প্যাডযুক্ত
লুইস মেন্ডো

উত্তর:


5

জেলি , 28 23 22 বাইট

ডেনিসকে 1 বাইট ধন্যবাদ।

26RØAṙ;U$;Œl$
;Zẇ@þ¢FS

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

স্ট্রিংগুলির একটি অ্যারে নেয়।


4
ওয়াট কিভাবে জেলি সর্বদা এত ছোট হয় ___।
ডাউনগোট

@ ডাউনগোট আপনি জেলি?
প্যাট্রিক রবার্টস

2
@ পেট্রিকরোবার্টস <s> হ্যাঁ </ b> না আমি ছাগল
ডাউনগোট

2

চেডার, 148 বাইট

(s,b=65@"90,c?)->(|>27).map(->s has(b=b.slice(1)+b[0])||s has b.lower||(1|>3).map(j->(c=s.lines.turn(j).vfuse)has b||c has b.lower?1:0).sum?1:0).sum

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

নন-কপমেটিং, 146 132 বাইট

এই সঠিক একই ব্যতীত উপরের মতো map(...?1:0).sumহয়ে উঠেছে any(...)

(s,b=65@"90,c?)->(|>27).any(->s has(b=b.slice(1)+b[0])||s has b.lower||(1|>3).any(j->(c=s.lines.turn(j).vfuse)has b||c has b.lower))

বরং ধীর হলেও এটি ¯ \ _ (ツ) _ / works কাজ করে ¯ anyচ্যালেঞ্জ প্রকাশের তারিখের পরে যুক্ত ফাংশন।

ইনপুটটি সাদা স্থানের সাথে প্যাড করার দরকার নেই । তবে যদি কোনও ইনপুট কাজ না করে তবে আয়তক্ষেত্রটি তৈরি করার জন্য এটিকে সাদা জায়গাগুলি দিয়ে প্যাড করুন। turnফাংশন সত্যিই খুঁতখুঁতে এবং আমি নিশ্চিত যখন এটি কাজ করে না এবং যখন এটা না

ব্যাখ্যা

বর্ণমালার সমস্ত সম্ভাব্য চক্র মাধ্যমে লুপ। প্রতিটি পুনরাবৃত্তির উপরের স্ট্রিংগুলিতে বর্ণমালার বর্তমান চক্র বিদ্যমান কিনা তা পরীক্ষা করে দেখুন, স্ট্রিংয়ের কোনও সম্ভাব্য আবর্তনের বর্ণমালা আছে কিনা তা পরীক্ষা করে দেখুন।

Ungolfed

(str, a = 65@"90)->
  (|>27).any(->
    str has (a = a.slice(1) + a[0]) ||
    str has a.lower                 ||
    (1|>3).any(j ->
      (c = str.lines.turn(j).vfuse) has a ||
      c has a.lower
    )
  )

কী c?মানে?
কনর ও'ব্রায়ান

@ কনরও ব্রায়েন c?মানে optionচ্ছিক যুক্তি। মূলত একইc=nil
ডাউনগোট

একটি প্রতিযোগিতামূলক সংস্করণ তৈরি করুন, তারপরে এই অ-প্রতিযোগিতামূলক সংস্করণটি নীচে রাখুন।
লিকি নুন

এটিতে কাজ @LeakyNun, কিভাবে চিন্তা করতে পারে না থাকলে {}যদিও
Downgoat

1
any(...)ঠিকmap(...?1:0).sum
Leaky নুন

2

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

A‚Duìvy26FÀD}})U|Dø€J)˜vXDgs`rFysk>ˆ}}¯O__

সংক্ষেপে ব্যাখ্যা

এক্স এর মধ্যে বর্ণমালার বিভিন্ন প্রকার (ক্যাপস, নো-ক্যাপস, বিপরীত, স্বাভাবিক) এবং স্টোর পান Get

A‚Duìvy26FÀD}})U

স্ট্রিংগুলির তালিকা হিসাবে ইনপুটগুলির প্রতিটি সারি এবং কলাম পান।

                 |Dø€J)˜

বর্ণমালাটির ভিন্নতা রয়েছে কিনা এমন প্রতিটি স্ট্রিং পরীক্ষা করে দেখুন।

                        vXDgs`rFysk>ˆ}}

যোগফল এবং ডাবল অস্বীকার করে, সত্যের জন্য 1 প্রদান করে এবং মিথ্যাকে 0 দেয়

                                       ¯O__

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


0

পাইথন, 182 বাইট

খুব 'গল্ফড' বোধ করে না, তবে ...

import re
a='abcdefghijklmnopqrstuvwxyz'
P,N='|\n'
p=P.join(a[i:]+a[:i] for i in range(26))
p+=P+p[::-1]
p+=P+p.upper()
lambda s:re.search(p,s+N+N.join(map(''.join,zip(*s.split(N)))))

কার্যপ্রণালীর তত্ত্ব:

প্রথমে সম্ভাব্য সমস্ত বর্ণমালার সংমিশ্রণে একটি রেজেক্স প্যাটার্ন তৈরি করুন:

p=P.join(a[i:]+a[:i] for i in range(26))'এ' এর সাথে যুক্ত '|' এর সমস্ত ঘোরার একটি স্ট্রিং তৈরি করে। যেমন "এবিসি ... জেড | বিসিডি ... জা | ..."

p+=P+p[::-1] নিজের বিপরীত সংস্করণ সংযোজন করে।

p+=P+p.upper() বড় হাতের সংস্করণ সংযোজন করা হয়।

তারপরে মূল sএবং sকলামগুলির সাথে সারিগুলিতে রূপান্তরিত করে এমন একটি সংস্করণ মিশ্রন করে একটি দীর্ঘ স্ট্রিং তৈরি করুন :

N.join(map(''.join,zip(*s.split(N)))) সারি এবং কলামগুলি ফ্লিপ করে, তাই 'a \ nb \ nc' 'abc' হয়ে যায়

প্যাটার্নটি দীর্ঘ স্ট্রিংয়ে থাকলে সত্যটি প্রত্যাবর্তন করুন।


খুব নিশ্চিত যে এটি করার জন্য আপনার রেজেেক্সের দরকার নেই; বিশেষত, inসাবস্ট্রিং জন্য চেক।
লিকি নুন

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