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

পাইথন প্রোগ্রাম - টেক্সটে দুটি শব্দের মধ্যবর্তী ন্যূনতম দূরত্ব বের করুন

মনে করুন text, w1, w2 তিনটি স্ট্রিং আছে। text একটি বাক্য যেখানে বিভিন্ন শব্দ আছে। আমাদের w1 এবং w2-এর যেকোনো দুটি অভবস্থানের মধ্যবর্তী ন্যূনতম দূরত্ব বের করতে হবে, দূরত্ব শব্দের সংখ্যা দ্বারা মাপা হয়। যদি w1 বা w2 text-এ না থাকে, তবে -1 ফেরত দিন।

ইনপুট text = "joy happy power happy joy joy power happy limit", w1 = "power", w2 = "limit" হলে আউটপুট হবে ১, কারণ power এবং limit-এর মাঝপথে শুধু "happy" শব্দটি আছে।

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

  • index1 := null, index2 := null
  • distance := 999999
  • text-এ প্রতিটি index idx এবং word w-এর জন্য:
    • যদি w == w1:
      • যদি index2 null না হয়: distance := min(distance, |idx - index2| - 1)
      • index1 := idx
    • যদি w == w2:
      • যদি index1 null না হয়: distance := min(distance, |idx - index1| - 1)
      • index2 := idx
  • যদি index1 এবং index2 দুটোই null না হয়: distance ফেরত দিন
  • অন্যথায় -1 ফেরত দিন

উদাহরণ

বাস্তবায়ন:

def solve(text, w1, w2):
    index1 = None
    index2 = None
    distance = 2000000
    for idx, word in enumerate(text.split(" ")):
        if word == w1:
            if index2 is not None:
                distance = min(distance, abs(idx - index2) - 1)
            index1 = idx
        if word == w2:
            if index1 is not None:
                distance = min(distance, abs(idx - index1) - 1)
            index2 = idx
    if index1 is not None and index2 is not None:
        return distance
    return -1

text = "joy happy power happy joy joy power happy limit"
w1 = "power"
w2 = "limit"
print(solve(text, w1, w2))

ইনপুট

"joy happy power happy joy joy power happy limit", "power", "limit"

আউটপুট

1
  1. পাইথনে দেওয়া অ্যারে থেকে দৈর্ঘ্য k সাবঅ্যারে বানাতে অনফেয়ারনেস মিনিমাইজ করার প্রোগ্রাম

  2. পাইথনে দুটি স্ট্রিং-এর কমন স্পেশাল সাবস্ট্রিং-এর দৈর্ঘ্য বের করার প্রোগ্রাম

  3. পাইথনে বাইনারি ট্রিতে দুটি নোডের মধ্যকার দূরত্ব খুঁজে বের করার প্রোগ্রাম

  4. দুই স্ট্রিং থেকে অনকমন ওয়ার্ড বের করার পাইথন প্রোগ্রাম