括弧匹配检验40分

https://www.xinyoudui.com/courses/1043/all/#/pages/32267
代码:

include<iostream>
	int sum = 0;
	cin >> str;
	for (int i = 0; i < str.size(); i++) {
		if (str[i] == 40 || str[i] == 41) {
			sum += 1;
		}
		if (str[i] == 91 || str[i] == 93) {
			sum += 3;
		}
		if (str[i] == 40) {
			if (str[i] == 41) {
				continue;
			}
			else {
				ci += 1;
			}
		}
		if (str[i] == 41) {
			cout << "Wrong";
			return 0;
		}
		if (str[i] == 91) {
			if (str[i] == 93) {
				continue;
			}
			else {
				si++;
			}
		}
		if (str[i] == 93) {
			cout << "Wrong";
			return 0;
		}
	}
	if (sum % 2 == 1) {
		cout << "Wrong";
		return 0;
	}
	cout << "OK";
	return 0;
}
1 个赞

发一下题面,权限不足。

1 个赞

你代码少了一行:

int main() {
1 个赞

5. 括弧匹配检验

题目ID:9428选做题100分

最新提交:

Wrong Answer

40 分

历史最高:

Wrong Answer

40 分

时间限制: 1000ms

空间限制: 524288kB

题目描述

假设表达式中允许包含两种括号:圆括号和方括号,其嵌套的顺序随意,如([ ]())或[([ ][ ])]等为正确的匹配,[( ])或([ ]( )或 ( ( ) ) )均为错误的匹配。现在的问题是,要求检验一个给定表达式中的括弧是否正确匹配?

输入格式

输入一个只包含圆括号和方括号的字符串,判断字符串中的括号是否匹配,匹配就输出 “OK” ,不匹配就输出“Wrong”。输入一个字符串:[([][])]

输出格式

匹配就输出 “OK” ,不匹配就输出“Wrong”。

样例

Input 1

[(])

Output 1

Wrong

样例解释

示例输入:[(])
示例输出:Wrong

数据范围

输入仅一行字符(字符个数小于255)。

1 个赞

还有cincout前面要加std::

#include<iostream>
using namespace std;
int main(){
	string str;
	int ci = 0;
	int si = 0;
	int sum = 0;
	cin >> str;
	for (int i = 0; i < str.size(); i++) {
		if (str[i] == 40 || str[i] == 41) {
			sum += 1;
		}
		if (str[i] == 91 || str[i] == 93) {
			sum += 3;
		}
		if (str[i] == 40) {
			if (str[i] == 41) {
				continue;
			}
			else {
				ci += 1;
			}
		}
		if (str[i] == 41) {
			cout << "Wrong";
			return 0;
		}
		if (str[i] == 91) {
			if (str[i] == 93) {
				continue;
			}
			else {
				si++;
			}
		}
		if (str[i] == 93) {
			cout << "Wrong";
			return 0;
		}
	}
	if (sum % 2 == 1) {
		cout << "Wrong";
		return 0;
	}
	cout << "OK";
	return 0;
}

这不应该用queue做嘛

. 关于栈

100分

  1. 栈的操作

100分

  1. 车厢调度

100分

  1. 程序输入问题

100分

  1. 括弧匹配检验

40分
是栈

1 个赞

额,那你用stack了嘛

1 个赞

没有

1 个赞

那就A不了呗

2 个赞

siliao+解决方案 @鲁子欣

2 个赞

我想点赞

1 个赞

他不让

1 个赞

孩子们我回来了

1 个赞

你这个名字……

1 个赞

好长

1 个赞

你在写什么???

1 个赞

这个用栈来模拟

  1. 如果栈为空
    push
  2. 如果栈顶元素为‘[‘, 现在访问的字符为’]’
    pop
  3. 如果栈顶元素为‘(‘, 现在访问的字符为’)’
    pop
  4. 模拟完后如果栈内还有元素
    cout << “Wrong”
  5. 模拟完后如果栈内没有元素
    cout << “OK”
1 个赞

1 个赞