C++, feedback welcome since I most likely fucked this up:
#include <string>
#include <vector>
#include <iostream>
std::string::size_type parens_check(const std::string & str)
{
int open_count = 0;
int close_count = 0;
std::vector<int> opens;
std::vector<int> closes;
for (std::string::size_type i = 0; i < str.size(); ++i)
{
if (str[i] == '(')
{
open_count++;
opens.push_back(i);
}
else if (str[i] == ')')
{
close_count++;
closes.push_back(i);
}
}
if (open_count > close_count)
{
if (closes.size() == 0)
return opens[0];
else
return opens[opens.size() - closes.size()];
}
else if (close_count > open_count)
{
return closes[opens.size()];
}
else
return str.length();
}
int main()
{
std::string s;
std::cin >> s;
int n = parens_check(s);
for (int i = 0; i < s.size(); ++i)
{
if (i == n)
std::cout << "**" << s[i];
else
std::cout << s[i];
}
std::cout << std::endl;
}