括号匹配
发布日期:2021-05-12 13:46:39 浏览次数:10 分类:精选文章

本文共 3411 字,大约阅读时间需要 11 分钟。

������������������������������������������������������

������������

������������������������������������������������������������������������������������������������������������������������������������������

  • ���������������������������������������������������
  • ������������������������������������������������
  • ���������������������������������������������������������������

������������������������������������������������������

  • {[()]} ���������������������
  • ([)] ������������

���������������������������������������������������������������������������

C++������

#include 
#include
using namespace std;
#define SIZE 1000
bool brackets(char ch[]) {
stack
s;
for (char* p = ch; *p; p++) {
if (*p == '(' || *p == '[' || *p == '{') {
s.push(*p);
} else {
if (!s.empty() &&
(*p == ')' && s.top() == '(' ||
*p == ']' && s.top() == '[' ||
*p == '}' && s.top() == '{')) {
s.pop();
} else {
return false;
}
}
}
return s.empty();
}
int main() {
char ch[SIZE];
while (cin >> ch) {
if (brackets(ch)) {
cout << "YES" << endl;
} else {
cout << "NO" << endl;
}
}
return 0;
}

Java������

import java.util.LinkedList;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner cin = new Scanner(System.in);
while (cin.hasNext()) {
String str = cin.next();
if (isMatch(str)) {
System.out.println("YES");
} else {
System.out.println("NO");
}
}
}
public static boolean isMatch(String str) {
LinkedList
stack = new LinkedList<>();
for (int i = 0; i < str.length(); i++) {
char ch = str.charAt(i);
if (ch == '(' || ch == '[' || ch == '{') {
stack.push(ch);
} else {
if (!stack.isEmpty() &&
(ch == ')' && stack.getLast() == '(' ||
ch == ']' && stack.getLast() == '[' ||
ch == '}' && stack.getLast() == '{')) {
stack.removeLast();
} else {
return false;
}
}
}
return stack.isEmpty();
}
}

������

������������������������������������������������������������������������

  • ������������������������������ ((, [, {) ������������������
  • ��������������������������������� (), ], }) ���������������������������������������������������������������������������������������
  • ������������������������������������������������������������������������������������
  • ������������

    C++������

    • ������������������ std::stack ������������������������������
    • ������������������������������������������������������
    • ������������������������������������������������

    Java������

    • ������������������ java.util.LinkedList ������������
    • ���������������������������������������������������������������
    • ��������������������������������������������� false���

    ���������������������

    • ������������������������������������������������������������������
    • ���������������������������������������������������������

    ������������������������������������������������������������������������������������������

    上一篇:给你n个字符串,输出其中重复次数最多的字符串(map解决)
    下一篇:有n个人,按照1,2,3,4......n的顺序依次进栈,判断能否以题目所给的序列进栈

    发表评论

    最新留言

    路过,博主的博客真漂亮。。
    [***.116.15.85]2025年04月22日 19时36分53秒