


Find any permutation that does not exist in a binary string array of given size
In this problem, we need to find all missing binary strings of length N from an array. We can solve this problem by finding all permutations of a binary string of length N and checking which permutations do not exist in the array. Here we will see iterative and recursive methods to solve this problem.
Problem Statement - We have been given an array arr[] of length N containing binary strings of different lengths. We need to find all missing binary strings of length N from the array.
Example Example
Input – arr = {"111", "001", "100", "110"}, N = 3
Output – [000, 010, 011, 101]
Explanation – There are 8 binary strings of length 3, because 2 raised to the third power is equal to 8. So, it prints out the missing 4 binary strings of length 3.
Input – str = {‘00’, ‘10’, ‘11’}, N = 2
Output –[‘01’]
Explanation – ‘01’ is missing in the array, so it will be printed in the output.
method one
Here, we will use the iterative method to find all possible binary strings of length N. After that we will check if the string exists in the array. If it doesn't exist, we print the string.
algorithm
Define a collection and use the insert() method to add all the strings in the array to the collection.
Initialize the total variable with 2N, where 2N is the total number of strings of length N
Define variable 'cnt' and initialize it to zero to store the total number of missing combinations.
Use a loop to make 'total' number of iterations to find all binary strings of length N.
In the loop, initialize the "num" string variable with an empty string.
Use nested loops for a total of N iterations, and starting from the last iteration, create a string of length N.
Use the find() method to check whether the collection contains the current string. If so, increase the value of 'cnt' by 1.
If the string is not in the map, print it to appear in the output
If the value of "cnt" is equal to the total number, it means that all strings of length N exist in the array, and "-1" is printed.
Example
#include <bits/stdc++.h> using namespace std; // function to print missing combinations of a binary string of length N in an array void printMissingCombinations(vector<string> &arr, int N) { unordered_set<string> set; // insert all the strings in the set for (string temp : arr) { set.insert(temp); } // get total combinations for the string of length N int total = (int)pow(2, N); // To store combinations that are present in an array int cnt = 0; // find all the combinations for (int p = 0; p < total; p++) { // Initialize empty binary string string bin = ""; for (int q = N - 1; q >= 0; q--) { // If the qth bit is set, append '1'; append '0'. if (p & (1 << q)) { bin += '1'; } else { bin += '0'; } } // If the combination is present in an array, increment cnt if (set.find(bin) != set.end()) { cnt++; continue; } else { cout << bin << ", "; } } // If all combinations are present in an array, print -1 if (cnt == total) { cout << "-1"; } } int main() { int N = 3; vector<string> arr = {"111", "001", "100", "110"}; printMissingCombinations(arr, N); return 0; }
Output
000, 010, 011, 101,
Time complexity - O(N*2N), where O(N) is used to check whether the string exists in the array and O(2N) is used to find all possible permutations.
Space complexity - O(N), because we use set to store strings.
Method Two
In this approach, we show the use of a recursive approach to find all possible binary strings of length N.
algorithm
Define a collection and insert all array values into the collection.
Call the generateCombinations() function to generate all combinations of binary strings
Define the base case in the generateCombinations() function. If the index is equal to N, then currentCombination is added to the list.
After adding '0' or '1' to the current combination, call the generateCombinations() function recursively.
After getting all combinations, check which combinations exist in the array and which do not. Also, print out the missing combinations to show in the output.
Example
#include <bits/stdc++.h> using namespace std; // Function to generate all possible combinations of binary strings void generateCombinations(int index, int N, string currentCombination, vector<string> &combinations) { // Base case: if we have reached the desired length N, add the combination to the vector if (index == N) { combinations.push_back(currentCombination); return; } // Recursively generate combinations by trying both 0 and 1 at the current index generateCombinations(index + 1, N, currentCombination + "0", combinations); generateCombinations(index + 1, N, currentCombination + "1", combinations); } // function to print missing combinations of a binary string of length N in an array void printMissingCombinations(vector<string> &arr, int N) { unordered_set<string> set; // insert all the strings in the set for (string str : arr) { set.insert(str); } // generating all combinations of binary strings of length N vector<string> combinations; generateCombinations(0, N, "", combinations); // Traverse all the combinations and check if it is present in the set or not for (string str : combinations) { // If the combination is not present in the set, print it if (set.find(str) == set.end()) { cout << str << endl; } } return; } int main(){ int N = 3; vector<string> arr = {"111", "001", "100", "110"}; printMissingCombinations(arr, N); return 0; }
Output
000 010 011 101
Time complexity - O(N*2N)
Space complexity - O(2N) since we store all combinations in arrays.
Both methods use the same logic to solve the problem. The first method uses an iterative technique to find all combinations of a binary string of length N, which is faster than the recursive technique used in the second method. Also, the second method consumes more space than the first method.
The above is the detailed content of Find any permutation that does not exist in a binary string array of given size. For more information, please follow other related articles on the PHP Chinese website!

Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics



With the popularity of cryptocurrencies, virtual currency trading platforms have emerged. The top ten virtual currency trading platforms in the world are ranked as follows according to transaction volume and market share: Binance, Coinbase, FTX, KuCoin, Crypto.com, Kraken, Huobi, Gate.io, Bitfinex, Gemini. These platforms offer a wide range of services, ranging from a wide range of cryptocurrency choices to derivatives trading, suitable for traders of varying levels.

There are many ways to center Bootstrap pictures, and you don’t have to use Flexbox. If you only need to center horizontally, the text-center class is enough; if you need to center vertically or multiple elements, Flexbox or Grid is more suitable. Flexbox is less compatible and may increase complexity, while Grid is more powerful and has a higher learning cost. When choosing a method, you should weigh the pros and cons and choose the most suitable method according to your needs and preferences.

How to adjust Sesame Open Exchange to Chinese? This tutorial covers detailed steps on computers and Android mobile phones, from preliminary preparation to operational processes, and then to solving common problems, helping you easily switch the Sesame Open Exchange interface to Chinese and quickly get started with the trading platform.

The top ten cryptocurrency trading platforms include: 1. OKX, 2. Binance, 3. Gate.io, 4. Kraken, 5. Huobi, 6. Coinbase, 7. KuCoin, 8. Crypto.com, 9. Bitfinex, 10. Gemini. Security, liquidity, handling fees, currency selection, user interface and customer support should be considered when choosing a platform.

The calculation of C35 is essentially combinatorial mathematics, representing the number of combinations selected from 3 of 5 elements. The calculation formula is C53 = 5! / (3! * 2!), which can be directly calculated by loops to improve efficiency and avoid overflow. In addition, understanding the nature of combinations and mastering efficient calculation methods is crucial to solving many problems in the fields of probability statistics, cryptography, algorithm design, etc.

Top Ten Virtual Currency Trading Platforms 2025: 1. OKX, 2. Binance, 3. Gate.io, 4. Kraken, 5. Huobi, 6. Coinbase, 7. KuCoin, 8. Crypto.com, 9. Bitfinex, 10. Gemini. Security, liquidity, handling fees, currency selection, user interface and customer support should be considered when choosing a platform.

The Y-axis position adaptive algorithm for web annotation function This article will explore how to implement annotation functions similar to Word documents, especially how to deal with the interval between annotations...

A safe and reliable digital currency platform: 1. OKX, 2. Binance, 3. Gate.io, 4. Kraken, 5. Huobi, 6. Coinbase, 7. KuCoin, 8. Crypto.com, 9. Bitfinex, 10. Gemini. Security, liquidity, handling fees, currency selection, user interface and customer support should be considered when choosing a platform.
