TWO-POINTER C++ SOLUTION
Intuition\n Describe your first thoughts on how to solve this problem. \n\n# Approach\n Describe your approach to solving the problem. \n\n# Complexity\n- Time 
# Intuition\n<!-- Describe your first thoughts on how to solve this problem. -->\n\n# Approach\n<!-- Describe your approach to solving the problem. -->\n\n# Complexity\n- Time complexity:o(n)\n<!-- Add your time complexity here, e.g. $$O(n)$$ -->\n\n- Space complexity:o(1)\n<!-- Add your space complexity here, e.g. $$O(n)$$ -->\n\n# Code\n```\nclass Solution {\npublic:\n    int minSwaps(string s) {\n        int n = s.size();\n        int balance = 0, swaps = 0, j = n - 1;\n        for(int i = 0; i < n; i++){\n            if(s[i] == \'[\'){\n                balance++;\n            }else{\n                balance--;\n            }\n            if(balance < 0){\n                while (i < j && s[j] != \'[\') j--;\n                swap(s[i], s[j]);\n                swaps++;\n                balance = 1;  // Reset balance after swap\n            }\n        }\n        return swaps;\n    }\n};\n```
['C++']