इस लेख में, हमें एक संख्या n दी गई है, और हमें दी गई संख्या में दोहराए गए अंकों को हटाने की आवश्यकता है।
Input: x = 12224 Output: 124 Input: x = 124422 Output: 1242 Input: x = 11332 Output: 132
दी गई समस्या में, हम सभी अंकों को देखेंगे और दोहराए जाने वाले अंकों को हटा देंगे।
समाधान खोजने के लिए दृष्टिकोण
दिए गए दृष्टिकोण में, हम n के सभी अंकों को दाएँ से बाएँ तक जानेंगे। हम n के मॉड को 10 से लेकर और फिर n को 10 से विभाजित करके n के अंकों से गुजरते हैं। अब हमारा वर्तमान अंक n mod 10 है। हम इसे पिछले अंक से जांचते हैं। यदि अंक बराबर हैं, तो अब हम n को पार करते हैं। यदि वे समान नहीं हैं, तो हम इस अंक को अपने नए नंबर में जोड़ते हैं, पिछले अंक को वर्तमान में बदलते हैं, और लूप जारी रखते हैं।
उदाहरण
#include <bits/stdc++.h> #define MOD 1000000007 using namespace std; int main() { int n = 1222333232; // given n int new_n = 0; // new number int po = 1; // will b multiple of ten for new digits int prev = -1; // previous digit int curr; // current digit while(n) { curr = n % 10; if(prev != curr) { // if a digit is not repeated then we go in this block new_n = new_n + (curr * po); // we add a new digit to new_n po *= 10; prev = curr; } n /= 10; } cout << new_n << "\n"; return 0; }
आउटपुट
123232
उपरोक्त कोड की व्याख्या
उपरोक्त दृष्टिकोण में, हम केवल n के अंकों के माध्यम से आगे बढ़ रहे हैं, जब हमारा पिछला अंक और वर्तमान अंक मेल नहीं खाता है, हम इस तरह के अंक को अपने नए नंबर में जोड़ते हैं, और जैसे ही हमारा अंक जोड़ा जाता है, हम पीओ भी बढ़ाते हैं, जो कि है हमारे अंकों की स्थिति के लिए उपयोग किया जा रहा है यदि हमारे वर्तमान और पिछले अंक मेल खाते हैं-हम इस ब्लॉक को नहीं चलाते हैं और लूप को तब तक जारी रखते हैं जब तक हमारा n 0 नहीं हो जाता।
निष्कर्ष
इस लेख में, हम एक दी गई संख्या में दोहराए गए अंकों को हटाने के लिए एक समस्या का समाधान करते हैं। हमने इस समस्या के लिए C++ प्रोग्राम और संपूर्ण दृष्टिकोण (Normal) भी सीखा जिसके द्वारा हमने इस समस्या को हल किया। हम उसी प्रोग्राम को अन्य भाषाओं जैसे सी, जावा, पायथन और अन्य भाषाओं में लिख सकते हैं। हमें उम्मीद है कि आपको यह लेख मददगार लगा होगा।