[ create a new paste ] login | about

Link: http://codepad.org/q5kGD6ot    [ raw code | output | fork ]

nilukush - C++, pasted on May 4:
#include <iostream>
#include <stack>

namespace
{
	const char& PLEFTCURLY('{');
	const char& PRIGHTCURLY('}');
}

int longest_length_prefix(const std::string& parentheses)
{
	int to_match(0), length_longest(0);
	for(size_t p(0); p < parentheses.size(); ++p)
	{
		if(parentheses[p] == PLEFTCURLY) ++to_match;
		else if(parentheses[p] == PRIGHTCURLY)
		{
			if(to_match) { --to_match; length_longest += 2; }
			else break;
		}
	}
	
	return length_longest; 
}

int main()
{
	std::cout << "\n" << longest_length_prefix("{{}{}}");
	std::cout << "\n" << longest_length_prefix("{}{}");
	std::cout << "\n" << longest_length_prefix("}{");
	std::cout << "\n" << longest_length_prefix("{{{}{}}}}}}}");
	std::cout << "\n" << longest_length_prefix("}}}{{}}{}}}");
	return 0;
}


Output:
1
2
3
4
5
6

6
4
0
8
0


Create a new paste based on this one


Comments: