用c写一个关于括号匹配的解决方法
时间: 2023-04-01 20:00:40 浏览: 68
可以使用栈来解决括号匹配的问题。具体实现方法如下:
1. 定义一个栈,用来存储左括号。
2. 遍历字符串中的每个字符,如果是左括号,则将其压入栈中。
3. 如果是右括号,则判断栈顶元素是否为与之匹配的左括号,如果是,则弹出栈顶元素,继续遍历下一个字符;如果不是,则说明括号不匹配,返回 false。
4. 遍历完字符串后,如果栈为空,则说明所有括号都匹配,返回 true;否则说明还有未匹配的括号,返回 false。
下面是示例代码:
```c
#include <stdio.h>
#include <stdbool.h>
#define MAX_LEN 100
bool isMatch(char* str) {
char stack[MAX_LEN];
int top = -1;
for (int i = ; str[i] != '\'; i++) {
if (str[i] == '(' || str[i] == '[' || str[i] == '{') {
stack[++top] = str[i];
} else if (str[i] == ')') {
if (top < || stack[top] != '(') {
return false;
}
top--;
} else if (str[i] == ']') {
if (top < || stack[top] != '[') {
return false;
}
top--;
} else if (str[i] == '}') {
if (top < || stack[top] != '{') {
return false;
}
top--;
}
}
return top == -1;
}
int main() {
char str[MAX_LEN];
printf("请输入一个字符串:");
scanf("%s", str);
if (isMatch(str)) {
printf("括号匹配\n");
} else {
printf("括号不匹配\n");
}
return ;
}
```
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)