আমি সম্প্রতি এই প্রশ্নটি স্ট্যাকওভারফ্লোতে দেখেছি । এটি দুর্দান্ত প্রশ্ন, তবে প্রশ্নটি নিয়ে একটি মারাত্মক সমস্যা রয়েছে। তারা এটি করার সর্বোত্তম উপায় জিজ্ঞাসা করছে। উদাহরণস্বরূপ, পড়ার পক্ষে সহজ, সর্বাধিক মূর্খবাদী, নেস্টেস্ট ইত্যাদি they তারা কি জানেন না যে বিষয়টি গুরুত্বপূর্ণ? আপনি কোডের কয়েকতম বাইট দিয়ে এটি কীভাবে করবেন সে সম্পর্কে জিজ্ঞাসা করার কথা!
যেহেতু আমি সন্দেহ করি যে প্রশ্নটি স্ট্যাকওভারফ্লোতে প্রশংসিত হবে, তাই আমি এখানে এটি জিজ্ঞাসা করার সিদ্ধান্ত নিয়েছি।
চ্যালেঞ্জ
আপনাকে অবশ্যই সংক্ষিপ্ততম প্রোগ্রাম বা ফাংশনটি লিখতে হবে যা কোনও দুটি স্বেচ্ছাসেবী স্ট্রিং ইন্টারলাইভ করার সমস্ত সম্ভাব্য উপায় তৈরি করে। উদাহরণস্বরূপ, যদি দুটি স্ট্রিং হয় 'ab'
এবং 'cd'
, আউটপুট হয়:
['abcd', 'acbd', 'acdb', 'cabd', 'cadb', 'cdab']
যেমন আপনি দেখতে পাচ্ছেন, a
সর্বদা আগে ছিলেন b
এবং c
সর্বদা আগে ছিলেন d
।
আইও যে কোনও যুক্তিসঙ্গত বিন্যাসে থাকতে পারে। আপনার আউটপুট যাচাই করতে এই অজগর কোডটি ব্যবহার করুন। (ক্রেডিট: জেডি )
def shuffle(s,t):
if s=="":
return [t]
elif t=="":
return [s]
else:
leftShuffle=[s[0]+val for val in shuffle(s[1:],t)]
rightShuffle=[t[0]+val for val in shuffle(s,t[1:])]
leftShuffle.extend(rightShuffle)
return leftShuffle
নমুনা আইও:
shuffle("$", "1234"):
['$1234', '1$234', '12$34', '123$4', '1234$']
shuffle("az", "by"):
['azby', 'abzy', 'abyz', 'bazy', 'bayz', 'byaz']
shuffle("code", "golf"):
['codegolf', 'codgeolf', 'codgoelf', 'codgolef', 'codgolfe', 'cogdeolf', 'cogdoelf',
'cogdolef', 'cogdolfe', 'cogodelf', 'cogodlef', 'cogodlfe', 'cogoldef', 'cogoldfe',
'cogolfde', 'cgodeolf', 'cgodoelf', 'cgodolef', 'cgodolfe', 'cgoodelf', 'cgoodlef',
'cgoodlfe', 'cgooldef', 'cgooldfe', 'cgoolfde', 'cgoodelf', 'cgoodlef', 'cgoodlfe',
'cgooldef', 'cgooldfe', 'cgoolfde', 'cgolodef', 'cgolodfe', 'cgolofde', 'cgolfode',
'gcodeolf', 'gcodoelf', 'gcodolef', 'gcodolfe', 'gcoodelf', 'gcoodlef', 'gcoodlfe',
'gcooldef', 'gcooldfe', 'gcoolfde', 'gcoodelf', 'gcoodlef', 'gcoodlfe', 'gcooldef',
'gcooldfe', 'gcoolfde', 'gcolodef', 'gcolodfe', 'gcolofde', 'gcolfode', 'gocodelf',
'gocodlef', 'gocodlfe', 'gocoldef', 'gocoldfe', 'gocolfde', 'goclodef', 'goclodfe',
'goclofde', 'goclfode', 'golcodef', 'golcodfe', 'golcofde', 'golcfode', 'golfcode']
যথারীতি, স্ট্যান্ডার্ড লুফোলগুলি প্রয়োগ হয় এবং বাইট জেতে সংক্ষিপ্ত উত্তর। যেহেতু প্রশ্নটি মূলত পাইথন সম্পর্কিত, তাই আমি সংক্ষিপ্ততম অজগর উত্তরটি দেখতে পছন্দ করব। (এবং না, পাইথ অজগর নয়)। তবে যে কোনও ভাষায় উত্তরগুলি উত্সাহিত হয়।