গ্রিডে অন্য গ্রিড রয়েছে কিনা তা নির্ধারণ করুন


10

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

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

নমুনা পরীক্ষার কেস

a:

123
456
789

b:

123
456
789

সত্য ফিরে আসা উচিত।

a:

code
golf

b:

thisis
code!!
golf!!
ohyeah

সত্য ফিরে আসা উচিত।

a:

abcd
efgh
ijkl

b:

abcdef
ghijkl
mnopqr

মিথ্যা ফিরে আসা উচিত।

a:

abc
def

b:

1abc2
3def4
5ghi6

সত্য ফিরে আসা উচিত

a:

ab
cd

b:

#ab##
##cd#

মিথ্যা ফিরে আসা উচিত

সর্বনিম্ন বাইট জয়।


2
হাই এবং কোডগল্ফ স্বাগতম! আমি আপনার পরীক্ষার কেসগুলি সম্পাদনা করেছি (আশা করি) এগুলিকে কিছুটা আরও পরিষ্কার করে দিন। নোট করুন যে চ্যালেঞ্জগুলিকে প্রধানতে পোস্ট করার আগে আমাদের কাজ করার জন্য একটি স্যান্ডবক্স রয়েছে । শুভকামনা!
FryAmTheEggman

2
এছাড়াও, আমি কি প্রথম অ্যারেটিকে স্ট্রিংগুলির অ্যারে হিসাবে এবং দ্বিতীয়টি নিউলাইন দ্বারা পৃথক স্ট্রিং হিসাবে নিতে পারি, যদিও আমার ভাষাতে (সি #) একটি অক্ষর টাইপ অন্তর্নির্মিত আছে?
অজ্ঞতার

@ নীল পরীক্ষার কেস 2 এবং 3 বর্গক্ষেত্র নয়।
রবিন রাইডার 21

5
আপনি যদি একটি truthy পরীক্ষা ক্ষেত্রে যেখানে যোগ করা যায়নি aনেই b'র বাম প্রান্ত এবং falsey পরীক্ষা ক্ষেত্রে যেখানে প্রতিটি লাইনে aপতনকে লাইনে প্রদর্শিত হয় bকিন্তু তাদের বাম প্রান্ত দিয়ে staggered?
শেগি 21

@ এম্বোডিমেন্টফ অজানা হ্যাঁ
হ্যাজার্ড

উত্তর:


9

ব্র্যাচল্যাগ (ভি 2), 4 বাইট

s\s\

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

সর্বাধিক সহজেই একটি পুরো প্রোগ্রাম হিসাবে একটি জন্য স্বাভাবিক হিসাবে, চালানোর , সঙ্গে একটি একটি কম্যান্ড-লাইন আর্গুমেন্ট, হিসাবে নির্দিষ্ট মান ইনপুটের। প্রশ্নটি কোনও ফাংশনের জন্য জিজ্ঞাসা করে, এবং প্রোগ্রামটি একটি ফাংশন হিসাবেও কাজ করে, বামদিকে বি , ডানদিকে একটি এবং আউটপুট ব্যতিক্রমের মাধ্যমে আউটপুট তৈরি করে যদি এবং যদি সিদ্ধান্তটি মিথ্যা হয় কেবল

ব্যাখ্যা

s\s\
s     a substring of rows of {the left input}
 \…\  assert rectangular; swap row and column operations
  s   a substring of <s>rows</s> columns of {the above matrix}
      {implicit} assert that the result can be {the right input}

"দৃsert় আয়তক্ষেত্রাকার" স্পষ্টতই অর্থহীন, কারণ প্রশ্নটি ইতিমধ্যে এটির নিশ্চয়তা দেয়। প্রোগ্রামের বাকি অংশগুলি সারি এবং কলামগুলির একটি সাবস্ট্রিং, অর্থাৎ একটি সাবম্যাট্রিক্স সনাক্ত করে গ্রিড-সন্ধান করে।

মেটা-আলোচনা

আমাদের আগেও খুব অনুরূপ প্রশ্ন ছিল; আমি আশা করি একটি প্রশ্নের সর্বাধিক উত্তর অন্যের উত্তরে পরিবর্তনযোগ্য হবে। যদিও এটি এটির আরও সুন্দর সংস্করণ বলে আমি মনে করি।


এখানে সংক্ষিপ্ত উত্তর, তাই আমি এটি গ্রহণ করব।
হ্যাজার্ড

7

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

f=lambda a,b,r=4:b*r and f(a,b[1:],r)|f(a,zip(*b)[::-1],r-1)or a==b

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

অক্ষরের টিপলগুলির তালিকা হিসাবে ইনপুট নেয়।

এর সমস্ত সাব-গ্রিড চেষ্টা করে bএবং aতাদের মধ্যে রয়েছে কিনা তা পরীক্ষা করে দেখুন। সাব-গ্রিডগুলি প্রথম সারিতে সরিয়ে ফেলা bবা 90 ডিগ্রি ঘোরানোর মাধ্যমে পুনরাবৃত্তভাবে শাখা দ্বারা উত্পাদিত হয় । ঠিক চারটি ঘোরার পরে, ছাঁটাটি নীচে bসমান কিনা তা পরীক্ষা করে দেখুন a


1
@ মমজি আমার ধারণা ইনপুট গ্রিডগুলি আয়তক্ষেত্র হিসাবে অনুমিত হয়।
xnor

5

জে , 21 15 8 7 বাইট

1#.,@E.

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

-7 বাইট ধন্যবাদ বলস বুসিয়েরকে

মূল উত্তর

জে , 21 15 বাইট

<@[e.&,$@[<;.3]

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

-6 বাইট ধন্যবাদ ফ্রাউনফ্রোগের জন্য

কিভাবে

  • <@[ বক্সযুক্ত বাম আর্গুমেন্ট
  • $@[<;.3] বাম দিকের আর্গুর মতো একই আকারের সাথে ডান দিকের আর্গুমেন্টগুলি
  • এখন বাম এবং ডান আর্গুমেন্ট হিসাবে পাস করুন ...
  • উভয় সমতল করার পরে বাম দিকটি ডান দিকের একটি এলম el e.&,

আমি মনে করি এটি হতে পারে<@[e.&,$@[<;.3]
ফ্রাউনফ্রগ

আহ অফ, টাই! আপনি একটি চ্যালেঞ্জ চান, কটাক্ষপাত আছে এই বিপুল আয়তন আমি সাইটের সঙ্গে ব্যভিচারে লিপ্ত হয়
ইউনুস

1
-7 বাইট: +/@:,@E.। E. এই চ্যালেঞ্জের জন্য বেশ তৈরি।
বলসে বুসিয়ের

tyvm @ বলসবুসিয়ার আমি আজ রাতে আপডেট করব।
জোনাহ

4

কাঠকয়লা , 26 বাইট

⌈⭆η⭆ι⁼θE✂ηκ⁺Lθκ¹✂νμ⁺L§θ⁰μ¹

এটি অনলাইন চেষ্টা করুন! লিঙ্কটি কোডটির ভার্জোজ সংস্করণ। সংক্ষিপ্ত সাবম্যাট্রিকগুলি গণনা করার আমার উত্তরের উপর ভিত্তি করে , কেবলমাত্র তফাতটি হ'ল যে আমি ম্যাচগুলির যোগফল না নিয়ে সর্বাধিক গ্রহণ করি এবং ফলাফলের কারণে অন্তর্নিহিত স্ট্রিং রূপান্তরটি ইতিমধ্যে একটি স্ট্রিং যা একটি সংরক্ষণ করে বাইট।


4

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

øŒεøŒI.å}à

দ্বিতীয় bইনপুট হিসাবে প্রথম ইনপুট হিসাবে নেয় a। চরিত্র-ম্যাট্রিক্স হিসাবে উভয় ইনপুট।

এই সম্পর্কিত চ্যালেঞ্জের জন্য @ মিস্টার এক্সকোডার এর 05 এবি 1 ই উত্তরটির পোর্ট , সুতরাং তাকে উজ্জীবিত করতে ভুলবেন না!

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

ব্যাখ্যা:

øŒ          # Get the sublists of every column of the (implicit) input `b`
  ε         # Map each list of sublists to:
   øŒ       #  Get the sublists of every column again
            #  (now we have all sub-matrices of `b`)
     I    #  Check if the second input `a` is in this list of sub-matrices
          # After the map: check if any are truthy by taking the maximum
            # (which is output implicitly as result)



3

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

105 বাইট:

f=(m,n)=>m.some((x,i)=>i<=m.length-n.length&x.some((c,j)=>n.every((l,z)=>(m[i+z]+'').indexOf(l,j)==2*j)))

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

পরিবর্তন করুন:

  • m[i]এর মধ্যে xএবং এর n[z]মধ্যে l: সম্পূর্ণরূপে ভুলে গিয়েছিল যে এই ভেরিয়েবলগুলি ইতিমধ্যে ইনস্ট্যান্ট হয়েছিল
  • &&এতে &: অপারেটরের উভয় পক্ষ ইতিমধ্যে বুলিয়ান রয়েছে তাই কিছুটা বিটওয়াস অপারেটর কাজ করবে

112 বাইট:

f=(m,n)=>m.some((x,i)=>i<=m.length-n.length&&m[i].some((c,j)=>n.every((l,z)=>(m[i+z]+'').indexOf(n[z],j)==2*j)))

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

পরিবর্তন করুন:

  • map((c,j)=>{...}).some(s=>s)মধ্যে some((c,j)=>{...}): অপ্রয়োজনীয়তা
  • m[i+z].join()এর মধ্যে m[i+z]+'': অ্যারেটিকে স্ট্রিংয়ে রূপান্তর করার একটি ছোট্ট উপায়
  • indexOf(n[z].join(),j)মধ্যে indexOf(n[z],j): পদ্ধতি ইতিমধ্যে পরিবর্তিত একটি স্ট্রিং মধ্যে indexOf n[z]

131 বাইট:

f=(m,n)=>m.some((x,i)=>i<=m.length-n.length&&m[i].map((c,j)=>n.every((l,z)=>m[i+z].join().indexOf(n[z].join(),j)==2*j)).some(s=>s))

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

রিডেবল:

function f (m, n) {
  return m.some((x, i) => {
    return i <= m.length - n.length
      && m[i].map((c, j) => {
        return n.every((l, z) => {
          return m[i + z].join().indexOf(n[z].join(), j) == 2 * j
        })
      })
        .some(s => s)
  })
}

স্বতন্ত্র মানগুলির তুলনা করার পরিবর্তে, আমি পরীক্ষা করেছিলাম যে গ্রিড এন থেকে প্রাপ্ত রেখাগুলি গ্রিড এম এর লাইনে অন্তর্ভুক্ত ছিল এবং যদি তাই হয় তবে কোন সূচকগুলিতে। যদি সমস্ত সূত্র একই সূচক থেকে শুরু করে অন্তর্ভুক্ত করা হয় তবে গ্রিড এন গ্রিড এম এর মধ্যে থাকে is


2

পাওয়ারশেল , 71 102 85 98 বাইট

ধন্যবাদ @ জো কিং; পরীক্ষার মামলা যুক্ত হয়েছে।

param($a,$b)!!($a|%{$p=[regex]::Escape($_)
$b|sls $p -a -ca|% m*}|group index|?{"$a"-ceq$_.Group})

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

কম গল্ফড:

param($a,$b)

$matches = $a|%{
    $pattern = [regex]::Escape($_)
    $b|Select-String $pattern -AllMatches -CaseSensitive|% Matches
}

$relevantGroupsByMatchPosition = $matches|group index|?{
    "$a"-ceq$_.Group  # the '$_.Group' contains matches in source order
                      # -ceq is case sensitivity equation operator
                      # -ceq performs an implicit conversion to the left operand type
}

!!($relevantGroupsByMatchPosition)  # true if the variable is not $null

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.