শব্দ চেইন রিলোড হয়েছে


9

এটি শব্দের শৃঙ্খলা এবং শব্দের দীর্ঘ শৃঙ্খলা তৈরির একটি বৈকল্পিক ।


ইনপুট হ'ল [অ্যাজেড] এর অক্ষর দ্বারা তৈরি কমপক্ষে 2 টি দীর্ঘ অক্ষরের অনন্য শব্দের একটি খালি খালি তালিকা। আপনাকে দীর্ঘতম সম্ভব শৃঙ্খলার দৈর্ঘ্য আউটপুট করতে হবে, যেখানে প্রতিটি পরবর্তী শব্দ পূর্ববর্তী শব্দের শেষ অক্ষরের সাথে শুরু হয়। আপনি তালিকার যে কোনও শব্দ দিয়ে শুরু করতে পারেন।

আরেকটি মোড় হ'ল আপনাকে তালিকার কোনও শব্দের পুনরাবৃত্তি করার অনুমতি দেওয়া হয়েছে। তবে আপনি কোনও দ্বি-শব্দের ব্লকের পুনরাবৃত্তি করতে পারবেন না। উদাহরণস্বরূপ, cat->tac->catঅনুমোদিত, তবে cat->tac->cat->tacতা নয়, কারণ আপনি দ্বি-শব্দের ব্লক ( cat->tac) পুনরাবৃত্তি করেছেন । এছাড়াও, আপনি একই শব্দটি টানা দু'বার ব্যবহার করতে পারবেন না (যেমন eye->eye)।

উদাহরণ:

  • cat dog tree egg => 3 (বিড়াল-> গাছ-> ডিম)
  • new men ten whim => 5 (দশ-> নতুন-> তিমি-> পুরুষ-> নতুন)
  • truth fret heart his => 5 (fret-> সত্য-> হৃদয়-> সত্য-> তার)
  • we were stew early yew easy => 9 (স্টিউ-> ছিল-> শুরুর-> ইয়ু-> ছিলেন-> সহজ-> ইউউ-> আমরা-> সহজ)
  • tac cat tac cot tac can => 6 (ট্যাক-> বিড়াল-> টাক-> কট-> ট্যাক-> ক্যান)

(এই উদাহরণগুলির মধ্যে আমি যদি ভুল করে ফেলেছি বা আপনি আরও কিছু নিয়ে এসেছেন তবে আমাকে জানতে দিন))

উত্তর:


3

পাইথন 3 , 150 149 145 বাইট

def f(d):
 a=[[w]for w in d]
 while a:b=a[0];a=[f+[l,y]for*f,l in a for y in{*d}-{b for a,b in zip(f,f[1:])if a==l}if l[-1]==y[0]]
 return len(b)

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

আর কেউ না হওয়া পর্যন্ত ধারাবাহিকভাবে আর পাথ (বা এই ক্ষেত্রে গ্রামাঞ্চলে ভ্রমণ মধ্যে) নির্মাণের ধারণা সরাসরি দ্বারা অনুপ্রাণিত হয় নির্মিত যেতে পারে GRC এর উত্তর উপর প্লে শব্দ শৃঙ্খল প্রশ্ন।


"cat dog tred xy yz zx"আয় 4। এটা কি ঠিক? এটা করা উচিত নয় 3?
চ্যাস ব্রাউন

@ চ্যাসব্রাউন xy yz zx xyদীর্ঘতম চেইন, তাই ৪
নটজাগান

1

হাস্কেল , 131 141 বাইট

মূলত ব্রুট ফোর্স পদ্ধতির .. ধারণাটি হ'ল সমস্ত সম্ভাব্য ডোমিনো টুকরো তৈরি করা , তাদের অনুমতি দেওয়া, এটি একটি বৈধ কম্বো কিনা তা পরীক্ষা করে পুরো জিনিসটি সর্বোচ্চ করে তোলা। সময় জটিলতা হাস্যকর, চতুর্থ পরীক্ষার কেসটি ইতিমধ্যে আমার পিসিতে 4 ডলার নেয় এবং টিআইওতে এটি কাজ করে বলে মনে হয় না!

import Data.List
p w=2+maximum[length$takeWhile(\(x,y)->x!!1==y!!0)$zip p$tail p|p<-permutations[[a,b]|(a,b)<-(,)<$>w<*>w,a/=b,last a==b!!0]]

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

Ungolfed

p w = maximum
  [ 2 + length c | p <- permutations [ [a,b] | (a,b) <- (,)<$>w<*>w
                                             , a /= b
                                             , last a == head b
                                     ]
                 , c <- [ takeWhile (\(x,y) -> x!!1 == y!!0) $ zip p (tail p) ]
  ]

সম্পাদনা করুন : ল্যাম্বডাবোট থেকে খালি হাসেলকে পরিবর্তন করা হয়েছে তবে গল্ফ করে কিছু বাইট সংরক্ষণ করেছেন যেমন এটি এখনও 145বাইটের চেয়ে কম নয় :)


টিআইওতে আমার কম্পিউটারে শেষেরটি 19 এর মতো হয়েছিল। বিটিডব্লিউ, আপনি ল্যাম্বডাবোট ব্যবহার করার কারণটি কি আমদানির বিবরণী লেখা এড়ানো উচিত, তাই না?
জিওকাভেল

হ্যাঁ আমি করেছি. তবে আমি এটি করা বন্ধ করলাম যেহেতু অন্য কেউ এটি করছে না, এটি সম্পর্কে নিশ্চিত নয়। কেন?
11

কে জিতল তা জানার চেষ্টা করছি। সাধারণত, আপনি বাইট গণনায় আমদানি বিবৃতি অন্তর্ভুক্ত করেন। তবে, যদি আপনি এমন পরিবেশ খুঁজে পান যার জন্য আমদানির প্রয়োজন হয় না, তবে এটি ঠিক আছে।
জিওকাভেল

ওহ, আমি যাইহোক কোনও উত্তর গ্রহণ করব না। আপনি যদি চান, তবে আমি আমার উত্তরটি পরিবর্তন করব কারণ @ নটজাগানের উত্তর আমার চেয়ে ভাল।
ბიმო

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