हमें कभी-कभी यह जांचने की आवश्यकता होती है कि कोई आवश्यक स्ट्रिंग सूची में मौजूद कई स्ट्रिंग्स से बनाई जा सकती है या नहीं। इसका क्रम भी मायने नहीं रखना चाहिए जिसमें स्ट्रिंग्स सूची में मौजूद हैं जिन्हें जोड़कर आवश्यक स्ट्रिंग प्राप्त की जानी है।
permutations के साथ
itertools से हम permutations फंक्शन का उपयोग कर सकते हैं जो सूची में स्ट्रिंग्स के विभिन्न क्रम में संभावित संयोजन देगा। जैसे ही कोई दिया गया संयोजन आवश्यक स्ट्रिंग से मेल खाता है, हम निष्कर्ष निकालते हैं कि स्ट्रिंग बनाई जा सकती है।
उदाहरण
from itertools import permutations
chk_str = 'balloon'
Alist = ['fly', 'on', 'o', 'hot', 'ball', 'air']
def findstring(strchk, biglist):
for i in range(2, len(biglist) + 1):
for perm in permutations(biglist, i):
if ''.join(perm) == strchk:
return True
return False
# फंक्शन का उपयोग
if findstring(chk_str, Alist):
print("स्ट्रिंग बनाई जा सकती है।")
else:
print("स्ट्रिंग नहीं बनाई जा सकती।")
आउटपुट
उपरोक्त कोड चलाने पर निम्न परिणाम मिलता है -
स्ट्रिंग बनाई जा सकती है।
रेगुलर एक्सप्रेशन के साथ
re मॉड्यूल compile फंक्शन प्रदान करता है जो रेगुलर एक्सप्रेशन पैटर्न निर्दिष्ट करके संभावित स्ट्रिंग्स बनाएगा। फिर इसकी तुलना जांच की जाने वाली स्ट्रिंग से की जाएगी। यदि परिणाम none नहीं है तो हम निष्कर्ष निकाल सकते हैं कि स्ट्रिंग बनाई जा सकती है।
उदाहरण
import re
chk_str = 'balloon'
Alist = ['fly', 'on', 'o', 'hot', 'ball', 'air']
def findstring(strchk, biglist):
r = re.compile("(?:" + "|".join(biglist) + ")*$")
if r.match(strchk) != None:
return True
return False
# फंक्शन का उपयोग
if findstring(chk_str, Alist):
print("स्ट्रिंग बनाई जा सकती है।")
else:
print("स्ट्रिंग नहीं बनाई जा सकती।")
आउटपुट
उपरोक्त कोड चलाने पर निम्न परिणाम मिलता है -
स्ट्रिंग बनाई जा सकती है।