এটি কি অনন্যরূপে সংমনীয়?


10

ইন উপসর্গ কোড সম্পর্কে এই চ্যালেঞ্জ , আমরা শিখেছি যে উপসর্গ কোড স্বতন্ত্র concatenable হয়।

তার অর্থ, তারা বিভাজক ছাড়া এবং অস্পষ্টতা ছাড়াই একসাথে যোগদান করতে পারে।

উদাহরণস্বরূপ, [1,2,45] যেহেতু একটি উপসর্গ কোড, তাই আমি বিচ্ছিন্নতা ছাড়াই তাদের সাথে একসাথে যোগদান করতে পারি: 1245245112145, এবং কোনও দ্ব্যর্থতা থাকবে না।

তবে কনভার্সটি সবসময় সত্য হয় না।

উদাহরণস্বরূপ, [3,34] একটি উপসর্গ কোড নয়। তবে, আমিও এটি করতে পারি: 3333434334333, এবং কোনও অস্পষ্টতা থাকবে না। আপনার কেবল একটি স্মার্ট পার্সার প্রয়োজন।

তবে, [1,11] স্বতন্ত্রভাবে যুক্তিযুক্ত নয়, কারণ 1111 টি 5 উপায়ে ব্যাখ্যা করা যায়।

লক্ষ্য

আপনার কাজ হ'ল একটি প্রোগ্রাম / ফাংশন লিখুন যা স্ট্রিংগুলির একটি তালিকা (এএসসিআইআই) ইনপুট হিসাবে গ্রহণ করে এবং সেগুলি অনন্যভাবে যুক্তিযুক্ত কিনা তা নির্ধারণ করে।

বিস্তারিত

সদৃশকে মিথ্যা হিসাবে গণনা করা।

স্কোরিং

এটি । বাইটস মধ্যে সংক্ষিপ্ত সমাধান।

Testcases

সত্য:

[12,21,112]
[12,112,1112]
[3,4,35]
[2,3,352]

মিথ্যা:

[1,1]
[1,2,112]
[1,23,4,12,34]
[1,2,35,4,123,58,8]

আমি নিশ্চিত হয়েছি যে আমি চ্যালেঞ্জটি সঠিকভাবে বুঝতে পেরেছি, এটি যদি স্ট্রিংগুলির মধ্যে একটির সাথে অন্যগুলির সংমিশ্রণের সমন্বয়ে গঠিত হয় তবে এটি অনন্যরূপে যুক্তিযুক্ত নয়? আপনার সেই বিবরণটি আরও স্পষ্ট করা উচিত।
জেমস

আপনি কি নিশ্চিত যে এটি থামানো সমস্যার সমতুল্য নয়?
মাতাল

আপনি থামিয়ে দিতে পারেন কেন এটি থামিয়ে দেওয়া সমস্যার সমতুল্য?
ফাঁস নুন

আমি বলিনি যে এটি ছিল, তবে ভাবছিলাম এটি হতে পারে। আরও কিছু ভাবার পরে আমি বিশ্বাস করি তা হয় না।
মাতাল

@feersum এখানে এই সমস্যার জন্য একটি বহু সময় এলগরিদম আছে: en.wikipedia.org/wiki/Sardinas%E2%80%93Patterson_algorithm
isaacg

উত্তর:


5

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

ফোনে, সুতরাং ব্যাখ্যাটি পরে অনুসরণ করতে হবে। কোড:

gF¹N>ã})€`€JDÚQ

ব্যবহার সিপি-1252 এনকোডিং। এটি অনলাইন চেষ্টা করুন!

শেষ পরীক্ষার ক্ষেত্রে খুব বেশি স্মৃতি লাগে, যাতে এটি কার্যকর না হয় ...


3
এটি অত্যন্ত চিত্তাকর্ষক যে আপনি নিজের ফোনে এটি টাইপ করতে সক্ষম হয়েছেন।
জেমস

3
@ ডিগ্রিগ্রিনএগ্রস এবং হামডিজে এটি প্রায় 40 মিনিট সময় নিয়েছে ...
আদনান

2
@ আদনান আমি অবাক হয়েছি যে আপনার ফোনের কীবোর্ডের পাঠ্য ভবিষ্যদ্বাণীক সমস্ত আবর্জনা প্রতীক সম্পর্কে কী ভাবেন :-)
লুইস মেন্ডো

1
@ লুইস মেন্দো হাহা, এটি কেবল একবার ঘটল যে আমি একটি বন্ধুর কাছে এলোমেলোভাবে 05AB1E প্রোগ্রাম পাঠিয়েছি।
আদনান

আমি অনুমান করছি যে এটি সংক্ষিপ্ত সংঘর্ষের দৈর্ঘ্যের উপরের একটি আবদ্ধ স্থাপন করে কাজ করে। আমি কি সঠিক?
পিটার টেলর

4

সিজেএম (৫৪ বাইট)

q_N/:A\,{_Am*:${~1$,<=},{~\,>}%La:L-}*A,A_&,-A*](\M*&!

স্ট্যান্ডিনে নিউলাইন-বিচ্ছিন্ন তালিকা হিসাবে ইনপুট নেয়।

অনলাইন ডেমো

যদি আমাদের সদৃশ কোডওয়ার্ডগুলি হ্যান্ডেল না করতে হয় তবে এটি সংক্ষিপ্ত করে 44 করা যেতে পারে:

q_N/\,{_W$m*:${~1$,<=},{~\,>}%La:L-}*](\M*&!

অথবা যদি সিজেমের একটি অ্যারের বিয়োগ হয় যা কেবলমাত্র দ্বিতীয় আইটেমের জন্য প্রথম তালিকা থেকে একটি আইটেম সরিয়ে ফেলেছে, এটি 48 টি হতে পারে ...

ব্যবচ্ছেদ

এটি সার্ডিনাস-প্যাটারসন অ্যালগরিদম তবে ডি-অপ্টিমাইজড। যেহেতু প্রতিটি ঝোলা প্রত্যয়টি কেবল একবারে আসে তাই মূল লুপটি চালানো যতবার ইনপুটটিতে অক্ষর রয়েছে (বিভাজকগুলি সহ) যথেষ্ট পরিমাণে গ্যারান্টি দেয়।

নোট করুন যে সিজেএম ইন্টারপ্রেটারে তর্কযোগ্য ত্রুটিটি সম্পর্কে আমার কাজ করতে হয়েছিল:

"abc" "a" #   e# gives 0 as the index at which "a" is found
"abc" "d" #   e# gives -1 as the index at which "d" is found
"abc" ""  #   e# gives an error

সুতরাং উপসর্গ চেক 1$,<=পরিবর্তে জটিল\#!

e# Take input, split, loop once per char
q_N/\,{
  e# Build the suffixes corresponding to top-of-stack and bottom-of-stack
  _W$m*
  e# Map each pair of Cartesian product to the suffix if one is the prefix of the other;
  e# otherwise remove from the array
  :${~1$,<=},{~\,>}%
  e# Filter out empty suffixes iff it's the first time round the loop
  La:L-
}*
e# If we generated an empty suffix then we've also looped enough times to generate all
e# of the keywords as suffixes corresponding to the empty fix, so do a set intersection
e# to test this condition.
](\M*&!
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.