পৃথক সাবস্ট্রিংয়ের সর্বাধিক সংখ্যা


9

বিবরণ

একটি দৈর্ঘ্য nএবং একটি বর্ণমালার আকার দেওয়া হয়েছে k>0, আপনার প্রোগ্রামটি অবশ্যই সেই পরামিতিগুলির সাথে স্ট্রিংয়ের সংখ্যা নির্ধারণ করবে যার সর্বাধিক সংখ্যক অনন্য সাবস্ট্রিং রয়েছে। এর ক্ষেত্রে এটি k=2OEIS A134457 উত্পন্ন করে ।

উদাহরণ

উদাহরণস্বরূপ, 2210সাবস্ট্রিং হয়েছে , 2, 22, 221, 2210, 2, 21, 210, 1, 10, এবং 0, 11. মোট তবে জন্য, 2দুইবার মনে হচ্ছে, তাই এটি মাত্র 10 অনন্য সাবস্ট্রিং হয়েছে।

এই দৈর্ঘ্য 4 3 বিভিন্ন চিহ্ন ধারণকারী স্ট্রিং এর জন্য যত বেশি সম্ভব, কিন্তু এটা সহ 36 tieing স্ট্রিং মোট 35 টি স্ট্রিং সঙ্গে বন্ধন 0012, 2101এবং 0121। অতএব, n=4এবং এর জন্য k=3, আপনার প্রোগ্রামটি 36 আউটপুট করা উচিত।

পরীক্ষার কেস

n    k    output

0    5    1
1    3    3
5    1    1
9    2    40
2    3    6
5    5    120

3
আপনি কিছু উদাহরণ দিতে পারেন? খুব সংক্ষিপ্ত বিবরণ থেকে চ্যালেঞ্জটি অনুসরণ করা একরকম কঠিন।
ETH প্রোডাকশনগুলি

সুতরাং n=2, k=39: আউটপুট হবে না 11,12,21,22,31,32,33,13,23?
VeganaiZe

@ ওয়েগানাইজে ডাবল ডিজিটের একটি পুনরাবৃত্তি সাবস্ট্রিং থাকে।
ব্যবহারকারী1502040

উত্তর:


2

জেলি , 9 বাইট

ṗµẆQLµ€ML

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

বিপরীত ক্রমে ইনপুট। পাশবিক বল.


ট্রান্সপোজ এবং লেজের সাহায্যে তিন-পরমাণু শৃঙ্খলা এড়িয়ে একটি বাইট সংরক্ষণ করুন:ṗẆQ$€ZṪL
জনাথন অ্যালান

3

পাইথ, 12 বাইট

l.Ml{.:Z)^UE

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

খাঁটি ব্রুট ফোর্স।

ব্যাখ্যা

  • অন্তর্ভুক্ত: Qপ্রোগ্রামে সংযোজন ।
  • অন্তর্নিহিত: ইনপুট একটি লাইন পড়ুন এবং মূল্যায়ন ( n) Q
  • E: ইনপুট ( k) এর একটি লাইন পড়ুন এবং মূল্যায়ন করুন ।
  • U: একটি পরিসীমা পেতে [0, ..., k-1]
  • ^: এর সমস্ত- nদৈর্ঘ্যের স্ট্রিং পান [0, ..., k-1]
  • .M: কার্যকারিতার জন্য সর্বাধিক দেয় এমনগুলি সন্ধান করুন f(Z):
    • .:Z: এর সাবস্ট্রিংগুলি সন্ধান করুন Z
    • {: সদৃশ অপসারণ
    • l: অনন্য সাবস্ট্রিংয়ের সংখ্যা পান
  • l: এই জাতীয় স্ট্রিংয়ের সংখ্যা পান

2

গণিত, 96 বাইট

Last[Last/@Tally[Length@Union@Flatten[Table[Partition[#,i,1],{i,s}],1]&/@Tuples[Range@#2,s=#]]]&

2

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

import Data.Lists
l=length
n#k=l$argmaxes(l.nub.powerslice)$mapM id$[1..k]<$[1..n]

ব্যবহারের উদাহরণ: 9 # 2-> 40

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

       [1..k]<$[1..n]  --  make a list of n copies of the list [1..k]
      mapM id          --  make a list of all combinations thereof, where
                       --  the 1st element is from the f1st list, 2nd from 2nd etc
  argmaxes             --  find all elements which give the maximum value for function:
     l.nub.powerslice  --    length of the list of unique sublists
l                      --  take the length of this list
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.