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

C++ प्रोग्राम में K डिजिट्स हटाना


मान लीजिए नंबर्स का एक सीक्वेंस अंकगणितीय कहलाता है अगर इसमें कम से कम तीन एलिमेंट्स हैं और किन्हीं दो लगातार एलिमेंट्स के बीच का अंतर समान है। उदाहरण के लिए, ये अंकगणितीय सीक्वेंस हैं: [1, 3, 5, 7, 9], [7, 7, 7, 7], [3, -1, -5, -9], लेकिन निम्न सीक्वेंस अंकगणितीय नहीं है: [1, 1, 2, 5, 7]

अब N नंबर्स से बना एक जीरो-इंडेक्स्ड ऐरे A दिया गया है। उस दिए गए ऐरे का एक स्लाइस इंटीजर्स का कोई भी जोड़ा (P, Q) है जैसे कि 0 <= P < Q < N। यहां ऐरे A का एक स्लाइस (P, Q) अंकगणितीय कहलाता है अगर सीक्वेंस: A[P], A[P+1], ..., A[Q-1], A[Q] अंकगणितीय है। फंक्शन को ऐरे A में अंकगणितीय स्लाइसेस की संख्या ढूंढनी चाहिए।

उदाहरण के लिए, अगर इनपुट [1,2,3,4] है, तो आउटपुट 3 होगा, क्योंकि एलिमेंट्स हैं [1,2,3], [2,3,4] और [1,2,3,4]

इसे हल करने के लिए, हम इन स्टेप्स को फॉलो करेंगे:

  • ret := 0, n := A का साइज, साइज n का एक ऐरे dp बनाएं

  • i को 2 से n-1 तक लूप करें:

    • अगर a[i] - a[i-1] = a[i-1] - a[i-2], तो:

      • dp[i] := 1 + dp[i-1]

      • ret को dp[i] से बढ़ाएं

  • ret लौटाएं

उदाहरण (C++)

बेहतर समझ के लिए निम्न इम्प्लीमेंटेशन देखें:

#include <bits/stdc++.h>
using namespace std;

class Solution {
public:
    int numberOfArithmeticSlices(vector<int>& A) {
        int ret = 0;
        int n = A.size();
        vector <int> dp(n);
        for(int i = 2; i < n; i++){
            if(A[i] - A[i - 1] == A[i - 1] - A[i - 2]){
                dp[i] = 1 + dp[i - 1];
                ret += dp[i];
            }
        }
        return ret;
    }
};

int main(){
    Solution ob;
    cout << (ob.removeKdigits("1432219", 3));
}

इनपुट

"1432219" 3

आउटपुट

1219

  1. - C++ प्रोग्राम: स्ट्रिंग से स्पेस हटाना

    प्रोग्राम एक स्ट्रिंग लेता है और उसमें से स्पेस हटा देता है। यह तब उपयोगी होता है जब हम अपने स्ट्रिंग की स्पेस बचाना चाहते हैं। निम्नलिखित नमूना दिखाता है कि इसे व्याख्या के साथ कैसे किया जाता है। Input: Hello World Output: HelloWorld व्याख्या स्ट्रिंग या वाक्य से स्पेस को हटाने या डिलीट करने के लिए

  1. C++ प्रोग्राम: पूर्णांक के अंकों को ज़ूम (बड़ा) करके प्रिंट करना C++ प्रोग्राम: पूर्णांक के अंकों को ज़ूम (बड़ा) करके प्रिंट करना

    इस प्रोग्राम में हम देखेंगे कि C++ में पूर्णांक के अंकों को कैसे ज़ूम (बड़े आकार में) प्रिंट किया जाए। ज़ूमिंग का अर्थ है संख्याओं को अन्य कैरेक्टर्स का उपयोग करके बड़े रूप में प्रिंट करना। तर्क सरल है, लेकिन हमें 0 से 9 तक प्रत्येक अंक को बड़े रूप में एक-एक करके बनाना होगा। उदाहरण कोड #include &l

  1. - C++ प्रोग्राम दी गई संख्या के अंकों का योग करने के लिए

    C++ भाषा में अंकों का योग गणना करने का एक उदाहरण निम्नलिखिक है, उदाहरण #include<iostream> using namespace std; int main() {    int x, s = 0;    cout << "संख्या दर्ज करें: ";    cin >> x;    while (x != 0) {       s =