हमें कभी-कभी यह जांचने की आवश्यकता होती है कि सूची में मौजूद कई स्ट्रिंग्स से एक आवश्यक स्ट्रिंग बनाई जा सकती है या नहीं। यह भी मायने नहीं रखना चाहिए कि सूची में तार किस क्रम में मौजूद हैं जिन्हें आवश्यक स्ट्रिंग प्राप्त करने के लिए जोड़ा जाना है।
क्रमपरिवर्तन के साथ
itertools से हम क्रमपरिवर्तन फ़ंक्शन का उपयोग कर सकते हैं जो हमें विभिन्न क्रम में सूची में स्ट्रिंग्स के संभावित संयोजन देगा। जैसे ही दिया गया संयोजन आवश्यक स्ट्रिंग से मेल खाता है, हम यह निष्कर्ष निकालते हैं कि स्ट्रिंग बनाई जा सकती है।
उदाहरण
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
# Using the function
if(findstring(chk_str,Alist)):
print("String can be formed.")
else:
print("String can not be formed.") आउटपुट
उपरोक्त कोड को चलाने से हमें निम्नलिखित परिणाम मिलते हैं -
String can be formed.
रेगुलर एक्सप्रेशन के साथ
री मॉड्यूल कंपाइल फंक्शन प्रदान करता है जो रेगुलर एक्सप्रेशन पैटर्न को निर्दिष्ट करके संभावित स्ट्रिंग्स बनाएगा। फिर इसकी तुलना चेक की जाने वाली स्ट्रिंग से की जाएगी। यदि परिणाम कोई नहीं है तो हम यह निष्कर्ष निकाल सकते हैं कि स्ट्रिंग बन सकती है।
उदाहरण
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
# Using the function
if(findstring(chk_str,Alist)):
print("String can be formed.")
else:
print("String can not be formed.") आउटपुट
उपरोक्त कोड को चलाने से हमें निम्नलिखित परिणाम मिलते हैं -
String can be formed.