একটি ক্রসওয়ার্ড পড়ুন


11

এই ফর্ম্যাটে প্যাকিং সম্পর্কে এই প্রশ্ন দ্বারা অনুপ্রাণিত ।

মাঝেমধ্যে আমি একটি সম্পূর্ণ ক্রসওয়ার্ড দেখতে পেয়েছি এবং আমি যেমন রয়েছি, আসলে ক্লুগুলির সমাধানগুলি কী ছিল তা জানার জন্য আমার মাথা ঘামানো যায় না।

ইনপুট:

  • একটি 2 ডি স্ট্রিং (যে কোনও বিন্যাস, নিউলাইন পৃথক, 2 ডি তালিকা ইত্যাদি)
  • ফাঁকা স্কোয়ারগুলি একটি (স্পেস ক্যারেক্টার) দিয়ে উপস্থাপন করা হবে
  • অন্যান্য প্রতিটি স্কোয়ার নিম্ন বর্ণের বর্ণমালাতে থাকবে।
  • আপনি ধরে নিতে পারেন ইনপুটটি একটি আয়তক্ষেত্র গঠনের জন্য ফাঁকা স্থানের সাথে প্যাড করা হবে

আউটপুট:

  • প্রতিটি শব্দ পাওয়া গেছে
    • আপনাকে অবশ্যই নীচে এবং নীচের শব্দগুলির জন্য অনুসন্ধান করতে হবে
    • শব্দগুলি কমপক্ষে দুটি অক্ষর দীর্ঘ হবে
    • যদি সেখানে সদৃশ শব্দ থাকে তবে প্রতিবার প্রদর্শিত হওয়ার জন্য আপনাকে সেগুলি আউটপুট দিতে হবে
  • আপনাকে কোনও বৈধতা দেওয়ার দরকার নেই
  • শব্দগুলি কোনও ক্রমে আউটপুট করা যেতে পারে
  • কঠোর বিন্যাসের কোনও নিয়ম নেই

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

word
e e 
step
t d 

word, step, west, reed
---
pies
 not
  no
wasp

pies, not, no, wasp, in, eons, stop
---
igloo
    n
word

igloo, word, on

উত্তর:


8

পাইথ - 11 10 8 7 বাইট

একটি বাইট সংরক্ষিত হয়েছে @ আইস্যাককে ধন্যবাদ।

t#cjsCB

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

t#               Filter by if len > 1
 c               Chop by whitespace by default
  j              Join by newlines
   sCB           Input, implicit and its transpose in one list

@ মাল্টেসেন ওয়ান্ডারফুল
লিকি নুন

1
পাইথ জিতল। যথারীতি.
লিকি নুন

1
আপনি নতুন একটি djc ... )
লাইনে

@ আইস্যাক যা সত্যিই দুর্দান্ত, ধন্যবাদ
মাল্টেসেন

2

সিজেম, 14 বাইট

{_z+S*S%{,(},}

একটি নামবিহীন ব্লক যা স্ট্যাকের শীর্ষে (প্যাডযুক্ত) স্ট্রিংগুলির একটি তালিকা প্রত্যাশা করে এবং পরিবর্তে শব্দের একটি তালিকা ছেড়ে দেয়।

এটি এখানে পরীক্ষা করুন।

ব্যাখ্যা

_z    e# Duplicate and transpose the grid.
+     e# Append the transpose to the original grid.
S*    e# Join all lines by spaces to ensure that we don't get words 
      e# spanning multiple lines.
S%    e# Split around spaces, discarding empty segments.
{,(}, e# Filter: keep only those strings with length 2 or greater.

1

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

s=>(s+` `+[...(t=s.split`
`)[0]].map((_,i)=>t.map(t=>t[i]).join``)).match(/\w\w+/g)

0

পাইথ , 18 বাইট

Lm:d"\S\S+"1byQyCQ

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

নমুনা ইনপুট:

["pies"," not","  no","wasp"," t  "]

নমুনা আউটপুট:

[['pies'], ['not'], ['no'], ['wasp'], []]
[[], ['in', 'at'], ['eons'], ['stop']]

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

Lm:d"\S\S+"1byQyCQ                                 The "1" here is mode
                    assign('Q',eval_input())       "1" which means show
                    @memoized                      all matches
L                   def y(b):                               v
 m:d"\S\S+"1b           return map(lambda d:regex(d,"\S\S+",1),b)
             yQ     imp_print(y(Q))
               yCQ  imp_print(y(transpose(Q)))

0

হাস্কেল, 58 বাইট

import Data.List
f x=[w|w@(_:_:_)<-words=<<x++transpose x]

ব্যবহারের উদাহরণ: f ["pies"," not"," no","wasp"]-> ["pies", "not", "no", "wasp", "in", "eons", "stop"]

এটি কীভাবে কাজ করে: ইনপুটটির প্রতিটি লাইন এবং স্পেসে স্থানান্তরিত করে এটি একক তালিকার শব্দের মধ্যে বিভক্ত করুন। সেগুলি মিল রাখুন (_:_:_), কমপক্ষে দুটি অক্ষর রাখুন।


0

সি ++ 14, 209 207 201 বাইট

হাস্যকরভাবে বাইট বেশি পরিমাণে ... তবে ওহ ভাল। ট্রান্সপোজ ম্যাট্রিক্স, বিভক্ত স্ট্রিং। সহজ। স্থানান্তরের জন্য খুব খারাপ কোনও নেটিভ ফাংশন নেই

[](vector<string>; m){auto t=m;int C=size(m[0]),j=0;for(;++j<C*C;)t[j%C][j/C]=m[j/C][j%C];for(j=0;++j<C+C;){stringstream Z(j<C?m[j]:t[j-C]);string s;while(getline(Z,s,' '))cout<<(size(s)>1?s+' ':"");}}

Ungolfed:

using S=vector<string>;
[](S m){
  S t=m;
  int C=size(m[0]),j=0;
  for(;j<C*C;++j)t[j%C][j/C]=m[j/C][j%C]; // Transpose
  for(j=0;j<C+C;++j){ // since rectangle matrix, we can iterate like so
    stringstream Z(j<C?m[j]:t[j-C]); // Get string from m or t
    string s;
    while(getline(Z,s,' '))
      cout<<(size(s)>1?s+' ':"");
  }
}

এটি কীভাবে ব্যবহার করবেন (নোটগুলি আপনাকে অবশ্যই প্রশ্নের উত্তর হিসাবে প্যাডিং প্রয়োগ করতে হবে):

using S = vector<string>;[](S m) { ... }({"pies", " not", "  no", "wasp"});

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