কম্পিউটার

স্ট্রিংকে k স্বতন্ত্র পার্টিশনে বিভক্ত করার জন্য পাইথন প্রোগ্রাম


ধরুন আমাদের একটি স্ট্রিং s এবং এবং একটি মান k আছে। k এর মান হল s এর দৈর্ঘ্যের ফ্যাক্টর, বলুন দৈর্ঘ্যটি n। আমরা s কে n/k আকারের t_i নামক বিভিন্ন সাবস্ট্রিং-এ ভাগ করতে পারি। তারপর এই t_i ব্যবহার করুন যাতে u_i বানাতে হয়

  • u_i-এ উপস্থিত অক্ষরগুলি t_i

    -এর অক্ষরগুলির অনুগামী
  • এই স্ট্রিং থেকে যেকোনো পুনরাবৃত্তি অক্ষর মুছে ফেলা হবে যাতে u_i-তে প্রতিটি অক্ষরের ফ্রিকোয়েন্সি 1

আমাদের এই u_i স্ট্রিংগুলি

খুঁজে বের করতে হবে

সুতরাং, যদি ইনপুটটি s ="MMPQMMMRM" k =3 এর মতো হয়, তবে আউটপুট হবে ["MP", "QM", "MR"] কারণ s এর আকার 9, এবং k 3, তাই 9/ 3 =3. স্ট্রিংগুলি হল MMP, QMM এবং MRM, কিন্তু যেহেতু আমরা ডুপ্লিকেট অক্ষর সমর্থন করি না, তাই তারা হবে MP, QM এবং MR৷

এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -

  • i :=0
  • ret :=একটি নতুন তালিকা
  • mp :=একটি নতুন মানচিত্র
  • to_print :=ফাঁকা স্ট্রিং
  • যখন i
  • যদি i mod k 0 এর মত হয় এবং i 0 না হয়, তাহলে
    • ret-এর শেষে insert to_print
    • ক্লিয়ার এমপি এবং ক্লিয়ার টু_প্রিন্ট
  • যদি s[i] mp-এ উপস্থিত না থাকে, তাহলে
    • mp[s[i]] :=0
    • to_print :=to_print + s[i]
  • i :=i + 1
  • ret-এর শেষে insert to_print
  • রিটার্ন রিটার্ন
  • উদাহরণ

    আসুন আরও ভালভাবে বোঝার জন্য নিম্নলিখিত বাস্তবায়ন দেখি

    def solve(s, k):
       i = 0
       ret = []
       mp, to_print = {}, ""
       while i < len(s):
          if i % k == 0 and i != 0:
             ret.append(to_print)
             mp, to_print = {}, ""
          if s[i] not in mp.keys():
             mp[s[i]] = 0
             to_print += s[i]
          i += 1
       ret.append(to_print)
       return ret
    
    s = "MMPQMMMRM"
    k = 3
    print(solve(s, k))

    ইনপুট

    "MMPQMMMRM", 3
    

    আউটপুট

    ['MP', 'QM', 'MR']

    1. পাইথন প্রোগ্রামে একটি তালিকাকে স্ট্রিংয়ে রূপান্তর করুন

    2. একটি তালিকাকে স্ট্রিং-এ রূপান্তর করতে পাইথন প্রোগ্রাম

    3. পাইথন প্রোগ্রাম বিভক্ত এবং একটি স্ট্রিং যোগদান?

    4. অক্ষরের তালিকাকে একটি স্ট্রিংয়ে রূপান্তর করতে পাইথন প্রোগ্রাম