kitty.
-
Автор темы
- #1
может кому-то тоже пригодится, домашку там по инфе зададут или ещё чё..
C++:
bool xo( std::string symbols ) {
std::stack<char> stack{ };
const std::vector<char> left_brackets = { '(', '{', '[' };
for ( auto i{ 0 }; i < symbols.size( ); i++ ) {
const auto bracket{ std::ranges::find( left_brackets.begin( ), left_brackets.end( ), symbols.at( i ) ) };
if ( bracket == left_brackets.end( ) ) {
if ( !stack.empty( ) && ( ( stack.top( ) == '(' && symbols.at( i ) != ')' ) || ( stack.top( ) == '{' && symbols.at( i ) != '}' ) || ( stack.top( ) == '[' && symbols.at( i ) != ']' ) ) )
return false;
else if ( !stack.empty( ) )
stack.pop( );
}
else
stack.push( *bracket );
}
return stack.empty( );
}
C++:
bool xo( std::string symbols ) {
auto j{ 0 };
for ( auto i{ 0 }; i < symbols.size( ); i++ ) {
switch ( symbols.at( i ) ) {
case '(':
case '{':
case '[':
j++; break;
case ')':
case '}':
case ']':
j--; break;
}
}
return !j;
}
Последнее редактирование модератором: