Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> C++

लंबाई k के सबस्ट्रिंग्स की संख्या ज्ञात करें जिनके ASCII मान का योग C++ में k से विभाज्य है

यहां हम एक और समस्या देखेंगे, जहां एक स्ट्रिंग और दूसरा पूर्णांक मान k दिया गया है। हमें लंबाई k के सबस्ट्रिंग की संख्या ज्ञात करनी है, जिसके ASCII मानों का योग k से विभाज्य है।

मान लीजिए कि एक स्ट्रिंग "बीसीजीएबीसी" है। और 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++ का उपयोग करके एक स्ट्रिंग के सबस्ट्रिंग की संख्या ज्ञात करें

    इस लेख में, आप किसी दिए गए स्ट्रिंग में बनाए जा सकने वाले सबस्ट्रिंग (गैर-रिक्त) की संख्या को खोजने के तरीकों के बारे में जानेंगे। Input : string = “moon” Output : 10 Explanation: Substrings are ‘m’, ‘o’, ‘o’, ‘n’, ‘mo’, &lsqu

  1. N अंक संख्या ज्ञात कीजिए जो C++ में D से विभाज्य है

    मान लीजिए हमारे पास दो संख्याएँ N और D हैं। हमें N अंक संख्या ज्ञात करनी है, जो D से विभाज्य है। यदि N 3 है, और D 5 है, तो संख्या 500 हो सकती है। इसे आसानी से हल किया जा सकता है। यदि D 10 है और N 1 है, तो यह असंभव होगा। हम डी डाल सकते हैं, और मान लें कि डी में एम अंकों की संख्या है, तो इसे एन अंक सं

  1. C++ प्रोग्राम किसी वर्ण का ASCII मान ज्ञात करने के लिए

    ASCII (अमेरिकन स्टैंडर्ड कोड फॉर इंफॉर्मेशन इंटरचेंज) टेबल में 128 कैरेक्टर हैं, जिनका मान 0 से 127 तक है। विभिन्न वर्णों के कुछ ASCII मान इस प्रकार हैं - चरित्र ASCII Value A 65 a 97 Z 90 z 122 $ 36 & 38 ? 63 एक प्रोग्राम जो किसी कैरेक्टर का ASCII मान ढूंढता है, वह इस प्रकार दिया जाता