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

পাইথনে দুটি স্ট্রিং ০ বা ১ এডিট ডিস্ট্যান্সে আছে কিনা যাচাই করার প্রোগ্রাম


মান ল করুন S এবং T নামের দুটি স্ট্রিং, আমাদের যাচাই করতে হবে তারা এক বা শূন্য এডিট ডিস্ট্যান্সে আছে কিনা। এডিট অপারেশন হল: একটি ক্যারেক্টার ডিলিট করা, একটি ক্যারেক্টার যোগ করা, বা একটি ক্যারেক্টারকে অন্য ক্যারেক্টারের সাথে রিপ্লেস করা।

যদি ইনপুট হয় S = "hello", T = "hallo", তবে আউটপুট হবে True, কারণ এই দুটি স্ট্রিংয়ের এডিট ডিস্ট্যান্স ১।

এটি সমাধান করতে আমরা নিম্নলিখিত ধাপগুলি অনুসরণ করব:

  • m := S-এর আকার, n := T-এর আকার
  • i := 0, j := 0, count := 0
  • যদি |m - n| > 1 হয়, তবে False ফেরত দিন
  • যখন i < m এবং j < n:
    • যদি S[i] != T[j] হয়:
      • যদি count == 1, False ফেরত দিন
      • যদি m < n, j := j + 1
      • অন্যথায় যদি m > n, i := i + 1
      • অন্যথায়, i := i + 1, j := j + 1
      • count := count + 1
    • অন্যথায়, i := i + 1, j := j + 1
  • True ফেরত দিন

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

উদাহরণ

class Solution:    def solve(self, S, T):       m, n = len(S), len(T)       i, j = 0, 0       count = 0       if abs(m - n) > 1:          return False       while i < m and j < n:          if S[i] != T[j]:             if count == 1:                return False             if m < n:                j += 1             elif m > n:                i += 1             else:                i += 1                j += 1             count += 1          else:             i += 1             j += 1       return True ob = Solution() S = "hello" T = "hallo" print(ob.solve(S, T))

ইনপুট

"hello", "hallo"

আউটপুট

True

  1. পাইথন প্রোগ্রাম - পয়েন্টগুলোর কনকেভ পলিগন গঠন করে কিনা তা যাচাই করুন

  2. পাইথন প্রোগ্রাম - পয়েন্টগুলোর কনভেক্স হাল গঠন করে কিনা তা যাচাই করুন

  3. পাইথনে দুটি বাইনারি ট্রির লিফ সিকোয়েন্স মিল কিনা যাচাই

  4. পাইথনে প্যারেনথেসিস ব্যালেন্সড কিনা যাচাই করার প্রোগ্রাম