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

सी ++ में एक्स से अधिक संख्यात्मक मान वाले सबस्ट्रिंग की संख्या की गणना करें


हमें 0 से 9 तक की संख्याओं की एक स्ट्रिंग दी गई है। स्ट्रिंग एक दशमलव संख्या का प्रतिनिधित्व करती है। लक्ष्य सभी सबस्ट्रिंग्स को ढूंढना है जो दशमलव संख्या का प्रतिनिधित्व करते हैं जो संख्या एक्स से अधिक है। शर्त यह है कि सबस्ट्रिंग 0 से शुरू नहीं होनी चाहिए। यानी "2021", "02", "021" में। "0" शामिल नहीं किया जाएगा।

हम सभी सबस्ट्रिंग के पहले मान की जांच करके ऐसा करेंगे, यदि यह 0 से अधिक है तो उस इंडेक्स से स्टोई () का उपयोग करके पूर्णांक में परिवर्तित करके सबस्ट्रिंग बनाना शुरू करें। अगर सबस्ट्रिंग>एक्स इंक्रीमेंट काउंट।

आइए उदाहरणों से समझते हैं।

इनपुट - str="123" X=12

आउटपुट − X से अधिक अंकीय मान वाले सबस्ट्रिंग की संख्या है − 2

स्पष्टीकरण सबस्ट्रिंग> 12, 123 और 23 हैं।

इनपुट - str="111" X=100

आउटपुट − बाइनरी स्ट्रिंग में सम दशमलव मान सबस्ट्रिंग की संख्या है − 1

स्पष्टीकरण केवल 111, 100 से बड़ा है।

नीचे दिए गए प्रोग्राम में इस्तेमाल किया गया तरीका इस प्रकार है

  • हम एक स्ट्रिंग str को केवल संख्याओं की एक स्ट्रिंग के रूप में लेते हैं।

  • str की लंबाई को len=str.length()

    में स्टोर करें
  • फ़ंक्शन ग्रेटर_एक्स (स्ट्रिंग स्ट्र, इंट एक्स) स्ट्रिंग और उसकी लंबाई लेता है और उन सबस्ट्रिंग्स की गिनती देता है जो एक्स से अधिक दशमलव संख्या बनाते हैं।

  • फ़ोर लूप का उपयोग करके ट्रैवर्स स्ट्रिंग

  • इंडेक्स i=0 से शुरू होकर i

  • अगर कोई str[i]!='0' का मतलब है कि इससे शुरू होने वाले सभी सबस्ट्रिंग मान्य होंगे।

  • सबस्ट्रिंग की लंबाई के लिए इंडेक्स j=1 से i+j

  • स्टोई () का उपयोग करके सबस्ट्रिंग str.substr(i,j) को दशमलव में बदलें। यदि यह X से अधिक है। वेतन वृद्धि की संख्या।

  • परिणाम के रूप में वापसी की गिनती।

उदाहरण

#include <bits/stdc++.h>
using namespace std;
int greater_X(string str, int x){
   int count = 0;
   int len = str.length();
   for (int i = 0; i < len; ++i){
      if(str[i] != '0'){
         for (int j=1; (i + j) <= len; ++j){
            if (stoi(str.substr(i, j)) > x){
               count++;
            }
         }
      }
   }
   return count;
}
int main(){
   string str = "987";
   int x = 100;
   cout<<"Count of number of substrings with numeric value greater than X are: "<<greater_X(str, x);
   return 0;
}

आउटपुट

यदि हम उपरोक्त कोड चलाते हैं तो यह निम्न आउटपुट उत्पन्न करेगा -

Count of number of substrings with numeric value greater than X are: 1

  1. सी ++ कोड संख्यात्मक स्ट्रिंग के भी सबस्ट्रिंग की संख्या की गणना करने के लिए

    मान लीजिए कि हमारे पास n अंकों के साथ एक स्ट्रिंग S है। S का एक विकल्प तब भी कहा जाता है जब इस स्ट्रिंग द्वारा प्रदर्शित संख्या भी सम हो। हमें S के सम सबस्ट्रिंग की संख्या ज्ञात करनी है। इसलिए, यदि इनपुट S =1234 जैसा है, तो आउटपुट 6 होगा, क्योंकि सबस्ट्रिंग 2, 4, 12,34, 234, 1234 हैं। इसे हल करने

  1. C++ में पूर्णांकों की एक स्ट्रिंग में 6 से विभाज्य सबस्ट्रिंग की संख्या

    हम एक समस्या को देखेंगे जिसमें हमें एक पूर्णांक स्ट्रिंग दी गई है और यह निर्धारित करना होगा कि पूर्णांक प्रारूप में कितने सबस्ट्रिंग 6 से विभाज्य हैं। यह ध्यान दिया जाना चाहिए कि इनपुट संख्याओं (पूर्णांक) से बने स्ट्रिंग के रूप में है। फिर भी, विभाज्यता जांच इसे केवल एक पूर्णांक के रूप में मानते हुए

  1. C++ का उपयोग करके एक स्ट्रिंग के सबस्ट्रिंग की संख्या ज्ञात करें

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