हमें 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