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

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

मान लीजिए कि हमारे पास एक स्ट्रिंग s है, हमें s के गैर-रिक्त अद्वितीय अनुक्रमों की संख्या ज्ञात करनी है। यदि उत्तर बहुत बड़ा है तो परिणाम को 10^9 + 7 से संशोधित करें।

इसलिए, यदि इनपुट s ="xxy" जैसा है, तो आउटपुट 5 होगा, क्योंकि इसके बाद के पांच क्रम हैं:"x", "xx", "xy", "y" और "xxy"।

इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -

  • मी :=10^9 + 7

  • n :=s का आकार

  • आकार 26 की एक सरणी तालिका परिभाषित करें

  • रेस :=0

  • इनिशियलाइज़ i :=1 के लिए, जब i <=n, अपडेट करें (i को 1 से बढ़ाएँ), do−

    • c :=s[i − 1] - 'a' का ASCII

    • curr :=(res + 1 - टेबल[c] + m) मॉड m

    • res :=(res + curr) mod m

    • टेबल [सी]:=(टेबल [सी] + करी) मॉड एम

  • रिटर्न रेस

आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें -

उदाहरण

#include <bits/stdc++.h>
using namespace std;
const int m = 1e9 + 7;
int solve(string s) {
   int n = s.size();
   vector<int> table(26);
   long long res = 0;
   for (int i = 1; i <= n; ++i) {
      int c = s[i − 1] − 'a';
      int curr = (res + 1 − table[c] + m) % m;
      res = (res + curr) % m;
      table[c] = (table[c] + curr) % m;
   }
   return res;
}
int main(){
   string s = "xxy";
   cout << solve(s);
}

इनपुट

"xxy"

आउटपुट

5

  1. C++ प्रोग्राम संख्या n से 1 करने के लिए आवश्यक न्यूनतम संख्या में संचालन की गणना करने के लिए

    मान लीजिए कि हमारे पास एक संख्या n है। हम इनमें से किसी एक ऑपरेशन को कई बार मनमाने ढंग से करते हैं - n को n/2 से बदलें जब n 2 से विभाज्य हो n को 2n/3 से बदलें जब n 3 से विभाज्य हो n को 4n/5 से बदलें जब n 5 से विभाज्य हो हमें नंबर 1 बनाने के लिए आवश्यक न्यूनतम चालों की संख्या गिननी होगी।

  1. सी ++ प्रोग्राम प्रत्येक सीढ़ी में सीढ़ियों की संख्या और चरणों की संख्या की गणना करने के लिए

    मान लीजिए कि हमारे पास n तत्वों के साथ एक सरणी A है। बता दें, अमल एक बहुमंजिला इमारत के अंदर सीढ़ियां चढ़ता है। हर बार जब वह चढ़ता है, तो 1 से गिनना शुरू करें। उदाहरण के लिए, यदि वह 3 कदम और 4 कदम के साथ दो सीढ़ियां चढ़ता है, तो वह 1, 2, 3, 1, 2, 3, 4 जैसी संख्याएं बोलेगा। सरणी A में, संख्याएँ अमल द

  1. सी ++ प्रोग्राम डोडेकैगन की संख्या गिनने के लिए जिसे हम आकार डी बना सकते हैं

    मान लीजिए कि हमारे पास एक संख्या d है। विचार करें कि अनंत संख्या में वर्गाकार टाइलें हैं और भुजाओं की लंबाई के साथ नियमित त्रिकोणीय टाइलें हैं। हमें यह पता लगाना है कि इन टाइलों का उपयोग करके हम कितने तरीकों से नियमित डोडेकागन (12-पक्षीय बहुभुज) बना सकते हैं। यदि उत्तर बहुत बड़ा है, तो परिणाम मोड 99