কম্পিউটার টিউটোরিয়াল

পাইথনে দুটি স্ট্রিং থেকে প্রিফিক্স কম্প্রেশন করার প্রোগ্রাম

ধরুন আমাদের দুটি স্ট্রিং s এবং t আছে (দুইটো ছোট হাতের ইংরেজি অক্ষর ধারণ করে)। আমাদের ৩টি পেয়ারের একটি লিস্ট বের করতে হবে, যেখানে প্রতিটি পেয়ার এই ফরম্যাটে (l, k) এখানে k একটি স্ট্রিং এবং l এর দৈর্ঘ্য। এখানে প্রথম পেয়ারটি ধারণ করবে s এবং t-র সর্বোচ্চ কমন প্রিফিক্স p, তারপর s-র বাকি অংশ s' এবং t-র বাকি অংশ t'। সুতরাং চূড়ান্ত লিস্ট হবে [(length of p, p), (length of s', s'), (length of t', t')]।

উদাহরণস্বরূপ, যদি ইনপুট s = "science" এবং t = "school" হয়, তবে আউটপুট হবে [(2, 'sc'), (5, 'ience'), (4, 'hool')]।

সমাধানের ধাপসমূহ

  • lcp := খালি স্ট্রিং
  • for i in range 0 to minimum of size of s or size of t:
    • যদি s[i] == t[i], তবে lcp := lcp + s[i]
  • s_rem := s[len(lcp):] (সাবস্ট্রিং অফ s থেকে ইন্ডেক্স len(lcp) থেকে শেষ পর্যন্ত)
  • t_rem := t[len(lcp):]
  • [(len(lcp), lcp), (len(s_rem), s_rem), (len(t_rem), t_rem)] রিটার্ন করুন

উদাহরণ

নিচের ইমপ্লিমেন্টেশনটি দেখুন ভালো বুঝার জন্য:

def solve(s, t):
    lcp = ''
    for i in range(min(len(s), len(t))):
        if s[i] == t[i]:
            lcp += s[i]
    s_rem = s[len(lcp):]
    t_rem = t[len(lcp):]
    return [(len(lcp), lcp), (len(s_rem), s_rem), (len(t_rem), t_rem)]

s = "science"
t = "school"
print(solve(s, t))

ইনপুট

"science", "school"

আউটপুট

[(2, 'sc'), (5, 'ience'), (4, 'hool')]
  1. দুই স্ট্রিং থেকে অনকমন ওয়ার্ড বের করার পাইথন প্রোগ্রাম

  2. পাইথনে দুটি ডিকশনারি মার্জ (Merge) করার পদ্ধতি

  3. পাইথন প্রোগ্রাম: দুটি ম্যাট্রিক্স যোগ (Matrix Addition)

  4. পাইথন প্রোগ্রাম: দুটি ম্যাট্রিক্স গুণ (Matrix Multiplication)