কম্পিউটার

k দৈর্ঘ্যের সাবস্ট্রিংগুলির সংখ্যা খুঁজুন যার অক্ষরের ASCII মানের সমষ্টি C++ এ k দ্বারা বিভাজ্য


এখানে আমরা আরেকটি সমস্যা দেখব, যেখানে একটি স্ট্রিং এবং আরেকটি পূর্ণসংখ্যার মান বলে k দেওয়া আছে। আমাদের k দৈর্ঘ্যের সাবস্ট্রিংগুলির সংখ্যা খুঁজে বের করতে হবে, যার অক্ষরগুলির ASCII মানের সমষ্টি k দ্বারা বিভাজ্য৷

ধরুন একটি স্ট্রিং হল "BCGABC"। এবং k-এর মান হল 3। এখানে স্ট্রিং BCG-এর ASCII যোগফল 300, ABC-এর ASCII যোগফল 294, উভয়ই k =3 দ্বারা বিভাজ্য।

পদ্ধতি সহজ. প্রথমে আমাদের প্রথম সাবস্ট্রিং-এর অক্ষরগুলির ASCII মান খুঁজে বের করতে হবে, যার দৈর্ঘ্য k। আমাদের স্লাইডিং উইন্ডো কৌশলটি ব্যবহার করতে হবে এবং উইন্ডোর প্রথম অক্ষরের ASCII বিয়োগ করতে হবে, এবং পরবর্তী অক্ষরের ASCII যোগ করতে হবে যা উইন্ডোটি স্লাইড করার পরে আসছে, আমরা প্রতিটি ধাপে গণনা বৃদ্ধি করব, যখন যোগফল k দ্বারা বিভাজ্য হবে। .

উদাহরণ

#include <iostream>
using namespace std;
int countKLenSubstr(string str, int k) {
   int len = str.length();
   int sum = 0;
   int count = 0 ;
   for (int i = 0; i <len; i++)
      sum += str[i] ; //ASCII sum of first substring
   if (sum % k == 0)
      count++;
   for (int i = k; i < len; i++) {
      int prev_ascii = str[i-k]; //ASCII of the first character of the window
      sum -= prev_ascii;
      sum += str[i];
      if (sum % k == 0)
         count += 1;
   }
   return count ;
}
int main() {
   string s = "BCGABC" ;
   int k = 3 ;
   cout<<"Number of substrings: " << countKLenSubstr(s, k);
}

আউটপুট

Number of substrings: 2

  1. C++ ব্যবহার করে একটি স্ট্রিং এর সাবস্ট্রিং এর সংখ্যা খুঁজুন

  2. প্রথম প্রাকৃতিক সংখ্যাটি খুঁজুন যার ফ্যাক্টরিয়াল C++ এ x দ্বারা বিভাজ্য

  3. C++ এ D দ্বারা বিভাজ্য N সংখ্যার সংখ্যা খুঁজুন

  4. একটি অক্ষরের ASCII মান খুঁজে পেতে C++ প্রোগ্রাম