একই লেংথের শব্দের লিস্ট দেওয়া আছে। কোনো দুটি শব্দ শুধু এক ক্যারেক্টার দিয়ে ভিন্ন কিনা চেক করুন।
ইনপুট উদাহরণ
words = ["seed", "pick", "lick", "root", "live"]
আউটপুট: True ("pick" এবং "lick" শুধু প্রথম ক্যারেক্টার ভিন্ন)
অ্যালগরিদম
- প্রতিটি শব্দের প্রতিটি পজিশনে
*দিয়ে মাস্ক বানান (যেমন "p*ck")। - সেটে যদি একই মাস্ক দুবার পাওয়া যায়, তবে প্রায় একই শব্দ আছে।
পাইথন কোড
def solve(words):
s = set()
for word in words:
for i, w in enumerate(word):
masked = word[:i] + "*" + word[i+1:]
if masked in s:
return True
else:
s.add(masked)
return False
# টেস্ট
print(solve(["seed", "pick", "lick", "root", "live"])) # True
ব্যাখ্যা
সময় জটিলতা: O(n * L²) (L = শব্দের লেংথ, স্ট্রিং স্লাইসিং এর জন্য)। স্পেস: O(n * L)।