600字范文,内容丰富有趣,生活中的好帮手!
600字范文 > 数据结构括号是否匹配

数据结构括号是否匹配

时间:2022-08-31 19:31:38

相关推荐

数据结构括号是否匹配

.10.13数据结构括号是否匹配,这题才开始5组/7组最后10组测试成功。

ddd最近我感觉我对前标开窍了一点,课本真是个好东西。欢迎点赞、评论、收藏转发。

数据结构括号是否匹配

任务描述相关知识就说这一块在课本应该好好研究,对于其它源码就可以顿悟了!编程要求测试说明C++代码

任务描述

本关任务:给定一串字符,不超过100个字符,可能包括括号、数字、字母、标点符号、空格,编程检查这一串字符中的( ) ,[ ],{ }是否匹配。

相关知识

为了完成本关任务,你需要掌握:1.栈的基本特性和操作,2.C++ 标准模板库(STL)中的容器栈(stack)的基本操作。

就说这一块在课本应该好好研究,对于其它源码就可以顿悟了!

wzm给我回去看题!

编程要求

根据提示,在右侧编辑器补充完成函数bool is_valid(char* str)的代码,该函数的功能为判断传入的字符串str中包含的括号是否匹配,如果匹配函数返回true,否则返回false。

测试说明

平台会对你编写的代码进行测试:

测试输入:

sin(10+20)

预期输出:

yes

测试输入:

{}{

预期输出:

no

测试输入:

[ , { ( , . ) [,] } , , ]

预期输出:

yes

开始你的任务吧,祝你成功!

C++代码

#include <stdio.h>#include <stdlib.h>#include <string.h>#include <string>#include <stack>using namespace std;#include "sqstack.h" //包含顺序栈基本运算bool is_valid(char* str){//请在下面编写代码/*************************Begin*********************/int len = strlen(str);int pos = 0;int* ans = (int*)malloc(sizeof(int)*len);for (int i = 0; i < len; i++){if ((str[i] == '(') || (str[i] == '{') || (str[i] == '[')){ans[pos++] = str[i];}if (str[i] == ')'){if ('(' == ans[pos - 1]){pos--;}else{return false;}}if (str[i] == '}'){if ('{' == ans[pos - 1]){pos--;}else{return false;}}if (str[i] == ']'){if ('[' == ans[pos - 1]){pos--;}else{return false;}}}if (pos != 0){return false;}return true;/**************************End**********************/}int main(int argc, char const *argv[]){char exp[1000];fgets(exp, 1000, stdin);bool flag = is_valid(exp);if (flag)printf("yes\n");else printf("no\n");return 0;}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。