输入括号匹配代码实现
时间: 2024-02-28 18:48:10 浏览: 65
好的,以下是一个简单的括号匹配代码实现(使用栈):
```python
def is_valid(s):
stack = []
mapping = {")": "(", "}": "{", "]": "["}
for char in s:
if char in mapping:
top_element = stack.pop() if stack else '#'
if mapping[char] != top_element:
return False
else:
stack.append(char)
return not stack
```
相关问题
c语言输入括号匹配代码实现
以下是C语言输入括号匹配的代码实现:
```c
#include <stdio.h>
#include <stdlib.h>
#define MAXSIZE 100
typedef struct {
char data[MAXSIZE];
int top;
} Stack;
void init(Stack *s) {
s->top = -1;
}
int isEmpty(Stack *s) {
return s->top == -1;
}
int isFull(Stack *s) {
return s->top == MAXSIZE - 1;
}
void push(Stack *s, char c) {
if (isFull(s)) {
printf("Stack is full.\n");
exit(1);
}
s->data[++s->top] = c;
}
char pop(Stack *s) {
if (isEmpty(s)) {
printf("Stack is empty.\n");
exit(1);
}
return s->data[s->top--];
}
int match(char a, char b) {
return (a == '(' && b == ')') || (a == '[' && b == ']') || (a == '{' && b == '}');
}
int check(char *str) {
Stack s;
init(&s);
for (int i = 0; str[i] != '\0'; i++) {
if (str[i] == '(' || str[i] == '[' || str[i] == '{') {
push(&s, str[i]);
} else if (str[i] == ')' || str[i] == ']' || str[i] == '}') {
if (isEmpty(&s) || !match(pop(&s), str[i])) {
return 0;
}
}
}
return isEmpty(&s);
}
int main() {
char str[MAXSIZE];
printf("Please input a string: ");
scanf("%s", str);
if (check(str)) {
printf("Match!\n");
} else {
printf("Not match!\n");
}
return 0;
}
```
输入括号匹配算法代码实现
好的,以下是括号匹配算法的代码实现(使用栈):
```python
def is_valid(s: str) -> bool:
stack = []
mapping = {")": "(", "}": "{", "]": "["}
for char in s:
if char in mapping:
top_element = stack.pop() if stack else '#'
if mapping[char] != top_element:
return False
else:
stack.append(char)
return not stack
```