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

পাইথনে দেওয়া স্ট্রিং চারটি আলাদা স্ট্রিংয়ে বিভক্ত করা সম্ভব কিনা যাচাই করার পদ্ধতি


মান লেও আমাদের একটি স্ট্রিং s আছে, আমাদের যাচাই করতে হবে কি আমরা এটিকে চারটি সাব-স্ট্রিং-এ (sub-strings) ভাগ করতে পারি যাতে প্রতিটি নন-এমপ্টি (non-empty) এবং ইউনিক (unique)।

তাই, যদি ইনপুট হয় s = "helloworld", তবে আউটপুট হবে True কারণ সাব-স্ট্রিংগুলির একটি সম্ভাব্য সেট হলো ["hel", "lo", "wor", "ld"]।

এটি সমাধান করার জন্য আমরা নিচের ধাপগুলো অনুসরণ করব:

  • যদি s-এর সাইজ >= 10 হয়, তবে
    • True রিটার্ন করুন
  • i = 1 থেকে s-এর সাইজ - 1 পর্যন্ত, করুন
    • j = i + 1 থেকে s-এর সাইজ - 1 পর্যন্ত, করুন
      • k = j + 1 থেকে s-এর সাইজ - 1 পর্যন্ত, করুন
        • sub1 := s[0 থেকে i - 1 인ডেক্স]
        • sub2 := s[i থেকে j - i - 1 인ডেক্স]
        • sub3 := s[j থেকে k - j - 1 인ডেক্স]
        • sub4 := s[k থেকে s-এর সাইজ - k - 1 인ডেক্স]
        • যদি sub1, sub2, sub3 এবং sub4 সবই আলাদা হয়, তবে
          • True রিটার্ন করুন
  • False রিটার্ন করুন

উদাহরণ

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

def solve(s):
    if len(s) >= 10:
        return True
    for i in range(1, len(s)):
        for j in range(i + 1, len(s)):
            for k in range(j + 1, len(s)):
                sub1 = s[0:i]
                sub2 = s[i:j - i]
                sub3 = s[j: k - j]
                sub4 = s[k: len(s) - k]
                if sub1 != sub2 and sub1 != sub3 and sub1 != sub4 and sub2 != sub3 and sub2 != sub4 and sub3 != sub4:
                    return True
    return False
s = "helloworld"
print (solve(s))

ইনপুট

"helloworld"

আউটপুট

True

  1. দেওয়া স্ট্রিংটি পাইথন কিওয়ার্ড কিনা চেক করার প্রোগ্রাম

  2. পাইথনে স্ট্রিং প্যাংগ্রাম (Pangram) কিনা চেক করা

  3. পাইথনে সাবস্ট্রিং স্ট্রিংয়ে উপস্থিত কিনা যাচাই করার প্রোগ্রাম

  4. পাইথন স্ট্রিংকে টাপলে কনভার্ট কীভাবে করবেন?