मान लीजिए, हमें एक सरणी दी गई है जिसमें कई स्ट्रिंग्स हैं जो समान लंबाई की हैं। हमें यह पता करना है कि क्या दी गई किन्हीं दो स्ट्रिंग्स में एक ही स्थिति पर एक ही कैरेक्टर का अंतर है। यदि यह अंतर मौजूद है, तो हम true वापस करते हैं अन्यथा false।
इसलिए, यदि इनपुट है: dict = ['pqrs', 'prqs', 'paqs'], तो आउटपुट True होगा। आउटपुट True है क्योंकि इनपुट में सूचीबद्ध स्ट्रिंग्स सभी इंडेक्स 1 पर भिन्न हैं। इसलिए, यदि कोई भी दो जोड़े लिए जाते हैं, तो उसी स्थिति में अंतर होता है।
हल करने के चरण
- seens := एक नया सेट
- dict में प्रत्येक word के लिए:
- word में प्रत्येक इंडेक्स i और कैरेक्टर c के लिए:
- masked_word := word[0 से i तक] + '.' + word[i+1 से अंत तक]
- यदि masked_word, seens में मौजूद है, तो true वापस करें
- अन्यथा, masked_word को seens में जोड़ें
- word में प्रत्येक इंडेक्स i और कैरेक्टर c के लिए:
- false वापस करें
उदाहरण (Python)
def solve(dict):
seens = set()
for word in dict:
for i, c in enumerate(word):
masked_word = word[:i] + '.' + word[i+1:]
if masked_word in seens:
return True
else:
seens.add(masked_word)
return False
print(solve(['pqrs', 'prqs', 'paqs']))
इनपुट
['pqrs', 'prqs', 'paqs']
आउटपुट
True