কম্পিউটার

একটি স্ট্রিং C++ এ একটি সাব-স্ট্রিং আছে কিনা তা পরীক্ষা করুন


এখানে আমরা দেখব কিভাবে স্ট্রিং লাইব্রেরি ফাংশনগুলি C++ এ স্ট্রিংগুলিকে মেলানোর জন্য ব্যবহার করা যেতে পারে। এখানে আমরা মূল স্ট্রিং-এ সাবস্ট্রিং-এর উপস্থিতি পেতে find() অপারেশন ব্যবহার করছি। এই find() পদ্ধতিটি প্রথম অবস্থান প্রদান করে যেখানে স্ট্রিং পাওয়া যায়। এখানে আমরা সমস্ত মিল পেতে এই find() ফাংশনটি একাধিকবার ব্যবহার করছি।

আইটেম পাওয়া গেলে, এই ফাংশন অবস্থান ফেরত. কিন্তু যদি এটি পাওয়া না যায়, এটি স্ট্রিং::npos.

ফেরত দেবে

তাই সাবস্ট্রিংটি মূল স্ট্রিং-এ উপস্থিত আছে কিনা তা পরীক্ষা করার জন্য, আমাদের find() এর রিটার্ন মানটি স্ট্রিং::npos বা না তা পরীক্ষা করতে হবে।

এখানে আমরা সহজভাবে অবস্থান পাচ্ছি যেখানে সাবস্ট্রিং উপস্থিত রয়েছে।

Input: The main string “aabbabababbbaabb” and substring “abb”
Output: The locations where the substrings are found. [1, 8, 13]

অ্যালগরিদম

স্ট্রিং_ফাইন্ড(main_str, sub_str)

ইনপুট − প্রধান স্ট্রিং এবং চেক করার সাবস্ট্রিং

আউটপুট − প্রধান স্ট্রিং-এ সাবস্ট্রিং-এর অবস্থান

pos := 0
while index = first occurrence of sub_str into the str in range pos to end of the string, do
   print the index as there is a match
   pos := index + 1
done

উদাহরণ কোড

#include
using namespace std;
main() {
   string str1 = "aabbabababbbaabb";
   string str2 = "abb";
   int pos = 0;
   int index;
   while((index = str1.find(str2, pos)) != string::npos) {
      cout << "Match found at position: " << index << endl;
      pos = index + 1; //new position is from next element of index
   }
}
থেকে

আউটপুট

Match found at position: 1
Match found at position: 8
Match found at position: 13

  1. সুইফটে স্ট্রিংটিতে অন্য স্ট্রিং রয়েছে কিনা তা পরীক্ষা করুন

  2. ইনপুট C++ এ সংখ্যাসূচক কিনা তা কিভাবে পরীক্ষা করবেন?

  3. একটি C/C++ স্ট্রিং একটি int কিনা তা কীভাবে পরীক্ষা করবেন?

  4. একটি স্ট্রিং পাইথনে সমান দৈর্ঘ্যের একটি প্যালিনড্রোমিক সাব-স্ট্রিং রয়েছে কিনা তা পরীক্ষা করুন