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

C++ में बार-बार इनवर्ट और एपेंड ऑपरेशंस द्वारा बनाई गई बाइनरी स्ट्रिंग में k-th बिट खोजें

मान लीजिए कि हमारे पास एक बाइनरी स्ट्रिंग है, शुरू में इसे "0" कहा जाता है। अब प्रत्येक पुनरावृत्ति में इसे उल्टा करें, और इसे संलग्न करें, इस प्रकार n वें पुनरावृत्ति के बाद, हम kth बिट पाएंगे। मान लीजिए कि पुनरावृत्तियों की संख्या 4 है, और k =7 है, तो यह होगा -

पुनरावृत्ति मान (शुरू में 0)
1 01
2 0110
3 01101001
4 0110100110010110

तो 7 वें बिट 1 है।

प्रत्येक पुनरावृत्ति में, पूरक खोजें, और संलग्न करें, इस प्रकार n वें पुनरावृत्ति के बाद, kth बिट पाता है

उदाहरण

#include<iostream>
using namespace std;
string getComplement(string bin){
   string temp = "";
   for(int i= 0; i<bin.length(); i++){
      if(bin[i] == '0')
         temp += "1";
      else
         temp += "0";
   }
   return temp;
}
char getCharacter(string bin_str, int n, int k) {
   string res = bin_str;
   for(int i = 0; i<n; i++){
      res += getComplement(res);
   }
   return res[k];
}
int main() {
   int n = 4;
   string bin = "0";
   cout << 7 << "th character is: "<< getCharacter(bin, n, 7);
}

आउटपुट

7th character is: 1

  1. C++ का उपयोग करते हुए बाइनरी स्ट्रिंग S के योग के लिए आवश्यक न्यूनतम संक्रियाएँ।

    समस्या कथन एक बाइनरी स्ट्रिंग str को देखते हुए। स्ट्र द्वारा दर्शाई गई संख्या बनाने के लिए आवश्यक न्यूनतम संक्रियाओं की संख्या ज्ञात कीजिए। केवल निम्नलिखित ऑपरेशन किए जा सकते हैं - 2 जोड़ेंx 2 घटाएंx यदि बाइनरी स्ट्रिंग 1000 है तो हमें केवल 1 ऑपरेशन करना होगा यानी 2 जोड़ें3 यदि बाइनरी स्ट्रि

  1. सी ++ का उपयोग करके स्ट्रिंग में पहला दोहराए गए वर्ण खोजें।

    मान लीजिए हमारे पास एक स्ट्रिंग है; हमें दोहराए जाने वाले पहले चरित्र को ढूंढना होगा। तो स्ट्रिंग हैलो फ्रेंड्स है, पहला दोहराया जाने वाला वर्ण l होगा। जैसा कि एक के बाद एक दो होते हैं। इसे हल करने के लिए, हम हैशिंग तकनीक का उपयोग करेंगे। एक हैश तालिका बनाएं, प्रत्येक वर्ण को एक-एक करके स्कैन करें,

  1. C++ प्रोग्राम बाइनरी और सीक्वेंशियल सर्च की तुलना करने के लिए

    बाइनरी सर्च और सीक्वेंशियल या लीनियर सर्च दोनों का उपयोग कंप्यूटर प्रोग्रामिंग में किसी तत्व को खोजने के लिए किया जाता है। द्विआधारी खोज की समय जटिलता O(log(n)) है और अनुक्रमिक खोज O(n) है। एल्गोरिदम Begin    Algorithm for Binary Search:    BinarySearch() function with ‘arr