Find an equal point in a string of brackets - GeeksforGeeks
Given a string of brackets, the task is to find an index k which decides the number of opening brackets is equal to the number of closing brackets.
String must be consists of only opening and closing brackets i.e. '(' and ')'.
An equal point is an index such that the number of opening brackets before it is equal to the number of closing brackets from and after.
Read full article from Find an equal point in a string of brackets - GeeksforGeeks
Given a string of brackets, the task is to find an index k which decides the number of opening brackets is equal to the number of closing brackets.
String must be consists of only opening and closing brackets i.e. '(' and ')'.
An equal point is an index such that the number of opening brackets before it is equal to the number of closing brackets from and after.
- Store the number of opening brackets appears in the string up to every index, it must start from starting index.
- Similarly, Store the number of closing brackets appears in the string upto each and every index but it should be done from last index.
- Check if any index has the same value of opening and closing brackets.
// Function to find an equal indexint findIndex(string str){ int len = str.length(); int open[len+1], close[len+1]; int index = -1; memset(open, 0, sizeof (open)); memset(close, 0, sizeof (close)); open[0] = 0; close[len] = 0; if (str[0]=='(') open[1] = 1; if (str[len-1] == ')') close[len-1] = 1; // Store the number of opening brackets // at each index for (int i = 1; i < len; i++) { if ( str[i] == '(' ) open[i+1] = open[i] + 1; else open[i+1] = open[i]; } // Store the number of closing brackets // at each index for (int i = len-2; i >= 0; i--) { if ( str[i] == ')' ) close[i] = close[i+1] + 1; else close[i] = close[i+1]; } // check if there is no opening or closing // brackets if (open[len] == 0) return len; if (close[0] == 0) return 0; // check if there is any index at which // both brackets are equal for (int i=0; i<=len; i++) if (open[i] == close[i]) index = i; return index;}Read full article from Find an equal point in a string of brackets - GeeksforGeeks