এমন একটি প্রোগ্রাম বা ফাংশন লিখুন যা দুটি এএসসিআইআই স্ট্রিং দেওয়া থাকে Aএবং Bস্ট্রিং উত্পাদন করে A'এবং B'যেখানে সাধারণ সাবস্ট্রিংগুলি তাদের জায়গায় বিপরীত হয়। অনুসন্ধানের প্রক্রিয়াটি A'নিম্নরূপ:
A'প্রাথমিকভাবে খালি।- তাহলে প্রথম অক্ষরটি
Aহয়B, দীর্ঘতম উপসর্গ এটিAএকটি সাবস্ট্রিং যাB। এই উপসর্গটি সরানAএবং এর বিপরীতটি যুক্ত করুনA'। - অন্যথায়, এই প্রথম অক্ষরটি মুছে ফেলুন
Aএবং এতে যুক্ত করুনA'। Aখালি না হওয়া পর্যন্ত 2-3 পদক্ষেপগুলি পুনরাবৃত্তি করুন ।
সন্ধান B'একইভাবে সম্পন্ন হয়।
উদাহরণ
এর স্ট্রিং A = "abc bab"এবং বিবেচনা করা যাক B = "abdabc"। কারণ A', এটি যা ঘটে:
A = "abc bab": প্রথম অক্ষর"a"বি এবং একটি দীর্ঘতম উপসর্গ বি পাওয়া যায়"abc"। আমরা এ উপসর্গটি এ থেকে সরিয়েছি এবং এর বিপরীতটি"cba"'এ' তে যুক্ত করব।A = " bab": প্রথম চরিত্রটি" "বি তে নেই, সুতরাং আমরা এই চরিত্রটিকে এ থেকে সরিয়ে এ 'এ যুক্ত করব।A = "bab": প্রথম অক্ষর"b"বি এবং একটি দীর্ঘতম উপসর্গ বি পাওয়া যায়"b"। আমরা এ উপসর্গটি এ থেকে সরিয়েছি এবং এর বিপরীতটি (যা এখনও রয়েছে"b") এ 'তে যুক্ত করি।A = "ab": প্রথম অক্ষর"a"বি এবং একটি দীর্ঘতম উপসর্গ বি পাওয়া যায়"ab"। আমরা এ উপসর্গটি এ থেকে সরিয়েছি এবং এর বিপরীতটি"ba"'এ' তে যুক্ত করব।A = "": এ খালি, তাই আমরা থামি।
এইভাবে আমরা পেতে A' = "cba" + " " + "b" + "ba" = "cba bba"। বি'র জন্য, প্রক্রিয়াটি একই রকম:
B = "abdabc" -> "a" in A, remove prefix "ab"
B = "dabc" -> "d" not in A, remove "d"
B = "abc" -> "a" in A, remove prefix "abc"
এইভাবে আমরা পেতে B' = "ba" + "d" + "cba" = "badcba"।
অবশেষে, আমরা দুটি স্ট্রিং, অর্থাৎ ফিরে আসি
(A', B') = ("cba bba", "badcba")
পরীক্ষার মামলা
"abc bab", "abdabc" -> "cba bba", "badcba"
"abcde", "abcd bcde" -> "dcbae", "dcba edcb"
"hello test", "test banana" -> "hello tset", "tset banana"
"birds flying high", "whistling high nerds" -> "bisdr flyhgih gni", "wihstlhgih gni nesdr"
বাইটস মধ্যে সংক্ষিপ্ত কোড।
"cba bba", "badcba"কোট এবং কমা অন্তর্ভুক্ত করার অনুরূপ ?