স্ট্রিং সার্চ অ্যালগরিদম হল প্রোগ্রামিং এর একটি অপরিহার্য পদ্ধতি যা একটি বড় স্ট্রিং এর মধ্যে একটি সাবস্ট্রিং এর অবস্থান সনাক্ত করতে ব্যবহৃত হয়। এই অ্যালগরিদমটি সাধারণত টেক্সট বা ডেটার মধ্যে নির্দিষ্ট কীওয়ার্ড, ক্যারেক্টার সিকোয়েন্স বা প্যাটার্ন অনুসন্ধান করতে ব্যবহৃত হয়। পিএইচপি-তে, বিভিন্ন পদ্ধতি যেমন strpos() এবং strstr() স্ট্রিং অনুসন্ধান করার জন্য উপলব্ধ।
কিভাবে স্ট্রিং অনুসন্ধান অ্যালগরিদম কাজ করে
স্ট্রিং অনুসন্ধান অ্যালগরিদম নিম্নরূপ কাজ করে:
- টেক্সট টু সার্চ ইন: প্রথমে, আমাদের একটি বড় স্ট্রিং(টেক্সট, ডেটা) দরকার যার মধ্যে আমরা সার্চ করতে চাই।
- অনুসন্ধানের জন্য প্যাটার্ন: আমাদের একটি সাবস্ট্রিং(কীওয়ার্ড, প্যাটার্ন) প্রয়োজন যা আমরা পাঠ্যের মধ্যে সনাক্ত করতে চাই।
- স্ট্রিং ম্যাচিং: অ্যালগরিদম প্যাটার্নের প্রতিটি অক্ষরকে পাঠ্যের সংশ্লিষ্ট অক্ষরের সাথে তুলনা করে। যদি সংশ্লিষ্ট অক্ষরগুলি মেলে না, তবে অ্যালগরিদম পরবর্তী অবস্থানগুলি পরীক্ষা করে চলেছে৷
- রিটার্নিং পজিশন: যদি সাবস্ট্রিংটি বৃহত্তর স্ট্রিং এর মধ্যে পাওয়া যায়, তাহলে অ্যালগরিদম তার প্রথম ঘটনার অবস্থান ফিরিয়ে দেয়। যদি পাওয়া না যায়, অ্যালগরিদম একটি অস্তিত্বহীন মান প্রদান করে(যেমন, -1)।
স্ট্রিং সার্চ অ্যালগরিদমের সুবিধা এবং অসুবিধা
সুবিধাদি:
- সহজ এবং বোধগম্য: এই অ্যালগরিদমটি প্রয়োগ করা এবং ব্যবহার করা সহজ।
- ছোট স্ট্রিংগুলির জন্য ভাল পারফরম্যান্স: ছোট স্ট্রিংগুলিতে অনুসন্ধান করার সময় এটি ভাল কার্য সম্পাদন করে।
অসুবিধা:
- দীর্ঘ স্ট্রিংগুলির জন্য দুর্বল কর্মক্ষমতা: দীর্ঘ স্ট্রিংগুলিতে অনুসন্ধান করার সময় কার্যক্ষমতা উল্লেখযোগ্যভাবে হ্রাস পেতে পারে।
- শুধুমাত্র প্রথম ঘটনাটি খুঁজে বের করে: অ্যালগরিদম শুধুমাত্র সাবস্ট্রিংটির প্রথম ঘটনার অবস্থান প্রদান করে।
উদাহরণ এবং ব্যাখ্যা
screen ধরা যাক আমাদের কাছে একটি পণ্যের বর্ণনার পাঠ্য আছে, এবং আমরা পরীক্ষা করতে চাই যে "টেক্সটটিতে কীওয়ার্ডটি উপস্থিত হচ্ছে কিনা। নীচে পিএইচপি-তে স্ট্রিং অনুসন্ধান করার একটি উদাহরণ রয়েছে:
$text = "This product features a wide and high-quality screen.";
$keyword = "screen";
$position = strpos($text, $keyword);
if($position !== false) {
echo "The keyword \"$keyword\" was found at position $position in the text.";
} else {
echo "The keyword \"$keyword\" was not found in the text.";
}
এই উদাহরণে, আমরা পাঠ্যের মধ্যে strpos() কীওয়ার্ডের প্রথম উপস্থিতির অবস্থান অনুসন্ধান করতে ফাংশনটি ব্যবহার করি। screen যদি কীওয়ার্ড পাওয়া যায়, তার প্রথম অবস্থান মুদ্রিত হয়; যদি না হয়, তাহলে একটি বার্তা প্রদর্শিত হবে যে কীওয়ার্ডটি পাওয়া যায়নি।
যদিও মৌলিক অনুসন্ধানের ক্ষেত্রে সহজ এবং কার্যকর, স্ট্রিং অনুসন্ধান অ্যালগরিদম দীর্ঘ পাঠ্যের সাথে খারাপভাবে কাজ করতে পারে এবং সাবস্ট্রিংয়ের সমস্ত ঘটনা খুঁজে পাওয়ার ক্ষমতা প্রদান করে না।



