আমাদের মাঝে মাঝে একটি তালিকায় উপস্থিত অনেক সংখ্যক স্ট্রিং থেকে একটি প্রয়োজনীয় স্ট্রিং তৈরি করা যায় কিনা তা পরীক্ষা করতে হবে। প্রয়োজনীয় স্ট্রিং পেতে যে স্ট্রিংগুলিকে যুক্ত করতে হবে সেই তালিকায় কোন ক্রমে স্ট্রিংগুলি উপস্থিত রয়েছে তা বিবেচ্য নয়৷
ক্রমক্রম সহ
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.
রেগুলার এক্সপ্রেশন সহ
re মডিউল কম্পাইল ফাংশন প্রদান করে যা রেগুলার এক্সপ্রেশন প্যাটার্ন নির্দিষ্ট করে সম্ভাব্য স্ট্রিং তৈরি করবে। তারপর এটি পরীক্ষা করা স্ট্রিং সঙ্গে তুলনা করা হবে. যদি ফলাফল কোনটি না হয় তাহলে আমরা উপসংহারে স্ট্রিং গঠিত হতে পারে।
উদাহরণ
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.