কতগুলি মেসা একটি প্রদত্ত স্ট্রিং দিয়ে শুরু হয়?


11

এর একটি কল স্ট্রিং একটি অ-খালি তালিকা যাক Mesa যদি নিম্নলিখিত শর্তাবলী রাখা:

  1. প্রতিটি তালিকাভুক্ত স্ট্রিংটি খালি নয় এবং কেবলমাত্র প্রথম অক্ষরে অক্ষর ব্যবহার করে।
  2. প্রতিটি ধারাবাহিক স্ট্রিং পূর্ববর্তী স্ট্রিংয়ের চেয়ে ঠিক একটি অক্ষর দীর্ঘ।
  3. তালিকার কোনও স্ট্রিং তালিকার অন্য কোনও স্ট্রিংয়ের একটি অনুচ্ছেদে নয়

"মেসা" শব্দটি এরূপ দৃষ্টিভঙ্গি থেকে এসেছে (যেখানে xগুলি বিভিন্ন চরিত্রের হতে হবে):

    xx..x
    xx..xx
    xx..xxx
    .
    .
    .
    xx..xxx..x 

এনবি: এটি একটি গাণিতিক সত্য যে কেবল চূড়ান্তভাবে অনেকগুলি ম্যাসা একটি নির্দিষ্ট স্ট্রিং দিয়ে শুরু হয়। মধ্যে পার্থক্য নোট subsequence বনাম সাবস্ট্রিং ; উদাহরণস্বরূপ, 'আনা' 'কলা' এর একটি অনুচ্ছেদ (তবে একটি স্তর নয়)।

চ্যালেঞ্জ:

  • সংক্ষিপ্ততম প্রোগ্রামটি লিখুন যা একটি স্বেচ্ছাসূচক অ-খালি আলফানিউমেরিক ইনপুট স্ট্রিং নেয় এবং সেই স্ট্রিংয়ের সাথে শুরু হওয়া মেসার সংখ্যা আউটপুট করে।

ইনপুট (স্টিডিন):

  • কোনও খালি খালি আলফানিউমেরিক স্ট্রিং।

আউটপুট (stdout):

  • ইনপুট স্ট্রিং দিয়ে শুরু হওয়া মেসার সংখ্যা।

স্কোরিং:

  • বিজয়ী হ'ল ন্যূনতম সংখ্যক বাইট সহ প্রোগ্রাম।

উদাহরণ mesas

শুধুমাত্র একটি মেসা দিয়ে শুরু a:

a

শুধুমাত্র একটি মেসা দিয়ে শুরু aa:

aa

অনেকগুলি ম্যাসা শুরু হয় ab:

ab        ab        ab        ab        (and so on)
          baa       aaa       bbb
                    bbba      bbaa
                              baaaa
                              aaaaaa

মেসার স্বতন্ত্রতা কীভাবে নির্ধারণ করা হয়? উদাহরণস্বরূপ, আমি থাকতে পারে ab, bbbশুধু দ্বিতীয় মেয়াদে এ বাঁধন দ্বারা একটি Mesa হিসাবে। এটা কি বৈধ? নাকি এগুলি সবসময় সম্ভব যথাসম্ভব তৈরি করতে হবে? এছাড়াও, যদি সেখানে একাধিক সম্ভব rearrangements হয় nth(যেমন শব্দ baa, aba, aab), না তারা পৃথক Mesas হিসাবে সব গণনা পাশাপাশি (অবশ্যই তারা সব নিয়ম অনুসরণ প্রদানের)?
মেল্লামোকব

@ মেল্লামোকব - তারা যদি কোনওভাবেই আলাদা হয় তবে এগুলি আলাদা মেসাস। যেমন, ab, ab/baa, ab/bbb, ab/bbb/bbaa, ab/bbb/bbaa/baaaa, ab/bbb/bbaa/baaaa/aaaaaaবিভিন্ন Mesas হয়।
মাঝামাঝি

@ মেল্লামোকব - আপনি অন্যান্য ভাল প্রশ্ন উত্থাপন করেছেন; উদাহরণস্বরূপ, প্রদত্ত স্ট্রিং দিয়ে কত সর্বাধিক দৈর্ঘ্যের মেসা শুরু হয় এবং সেই সর্বোচ্চ দৈর্ঘ্যটি কত। এই প্রশ্নের অন্যান্য সংস্করণগুলি প্রদত্ত আকারের বর্ণমালা ঠিক করবে (বর্ণমালার আকারটি ইনপুট হবে) এবং সমস্ত মেসাকে বিবেচনা করবে (শর্ত # 1 ব্যতীত পুনরায় সংজ্ঞায়িত) যা প্রদত্ত বর্ণমালা থেকে কেবলমাত্র অক্ষর ব্যবহার করে - আবার কেবল চূড়ান্তভাবে অনেকগুলি রয়েছে।
মাঝামাঝি

উত্তর:



2

রুবি, 142 টি অক্ষর

m=->l{[*l[0].chars].repeated_permutation(l[-1].size+1).reduce(1){|s,x|l.any?{|y|x*''=~/#{[*y.chars]*'.*'}/}?s:s+m[l+[x*'']]}}
p m[[gets.chop]]

এই অ্যালগরিদম গঠনমূলক, অর্থাৎ এটি ইনপুট স্ট্রিংয়ের জন্য সমস্ত সম্ভাব্য ম্যাসা তৈরি করে এবং তাদের গণনা করে। এটি প্রোগ্রামটিকে সত্যই, ধীর করে দেয় - তবে ওহে, এটি কোডগল্ফ।

উদাহরণ রান:

> a
1
> aa
1
> ab
43

আমি আশা করছিলাম যে সমস্ত মেসাস দৈর্ঘ্য 3 (উদাঃ aab) এর কিছু অযৌক্তিক বাইনারি স্ট্রিং দিয়ে শুরু করা সম্ভব সম্ভাব্য দৈর্ঘ্যের, তবে আমি নিশ্চিত নই - উদাহরণস্বরূপ আপনার প্রোগ্রামটি প্রায় এক ঘন্টা চলছে। এনবি: দুটি পৃথক বর্ণের বেশি সংযুক্ত কোনও ইনপুটের জন্য সম্ভাব্য আউটপুট হবে না; উদাহরণস্বরূপ, কিছু ম্যাসা শুরু হয় abcযার দৈর্ঘ্য 7000 তম একারম্যান সংখ্যার চেয়ে বেশি ।
মাঝামাঝি

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