当前位置: 首页 > news >正文

网站可以做多少个网页网站单页支付宝支付怎么做

网站可以做多少个网页,网站单页支付宝支付怎么做,如何做原创短视频网站,达人室内设计网站一、题目链接 https://leetcode.cn/problems/valid-parentheses/submissions/538110206 二、题目思路 利用栈的性质,后进先出 1.依次读取字符串,判断是否为左括号,如果是,就将其入栈。 2.如果读取的不是左括号,就说…

一、题目链接

https://leetcode.cn/problems/valid-parentheses/submissions/538110206


 

二、题目思路

利用栈的性质,后进先出

1.依次读取字符串,判断是否为左括号,如果是,就将其入栈。

2.如果读取的不是左括号,就说明是右括号了。这时要在栈不为空的情况下,去取栈的栈顶元素,判断栈顶元素是否和此时读取的右括号之间是否配对。

3.如果配对,就让栈顶的左括号出栈

4.重复循环,直至字符串读取完,或者在读完之前,就直接就判断出了匹配错误的结果

6.最后要判断是否栈是否为空栈,如果是空栈,就说明所有扩号是匹配成功的,就返回true 

如果不为空,就返回false

注意:如果字符串都是右括号,这样就没有元素入栈,最后判断栈为空,得到了错误的结果

所以:

要在取栈顶元素判断之前,要判断栈是否为空,为空,就说明第一个字符是右括号,就直接代表匹配失败,直接返回false

三、题解代码

typedef char StackDataType;
typedef struct stack {StackDataType* data;int size;int capacity;
} Stack;
void stackInit(Stack* pst);
void stackDestroy(Stack* pst);
void checkCapacity(Stack* pst);
int stackIsEmpty(Stack* pst);
void stackFush(Stack* pst, StackDataType data);
void stackPop(Stack* pst);
StackDataType stackTop(Stack* pst);
int stackSize(Stack* pst);
void stackInit(Stack* pst) {pst->data = NULL;pst->size = 0;pst->capacity = 0;
}
void stackDestroy(Stack* pst) {free(pst->data);pst->data = NULL;pst->capacity = 0;pst->size = 0;
}
void checkCapacity(Stack* pst) {if (pst->size == pst->capacity) {int newcapacity = pst->capacity == 0 ? 4 : 2 * pst->capacity;StackDataType* p = (StackDataType*)realloc(pst->data,sizeof(StackDataType) * newcapacity);if (p == NULL) {perror("realloc fail");return;}pst->data = p;pst->capacity = newcapacity;}
}
int stackIsEmpty(Stack* pst) {if (pst->size == 0)return 1;elsereturn 0;
}
void stackFush(Stack* pst, StackDataType data) {checkCapacity(pst);pst->data[pst->size] = data;pst->size++;
}
void stackPop(Stack* pst) {pst->size--;
}
StackDataType stackTop(Stack* pst) {return pst->data[pst->size - 1];
}
int stackSize(Stack* pst) {return pst->size;
}
bool isValid(char* s) {// write code hereStack sta;stackInit(&sta);while (*s) {if (*s == '(' || *s == '[' || *s == '{')//读入左括号stackFush(&sta, *s);//左括号入栈else {//     //如果第一个是右括号,进不了栈,说明栈为空,直接返回falseif(stackIsEmpty(&sta))return false;if (!stackIsEmpty(&sta)) {StackDataType temp = stackTop(&sta);//取栈顶元素//如果栈顶元素无法与之匹配,就说明失败了if (*s == ')' && temp != '(')return false;else if (*s == ']' && temp != '[')return false;else if (*s == '}' && temp != '{')return false;elsestackPop(&sta);  //出栈,更新栈顶元素}} s++;//移动字符指针}if (stackIsEmpty(&sta))return true;  //如果最后栈为空,就说明成功elsereturn false;
}

http://www.hyszgw.com/news/67774.html

相关文章:

  • 网站建设推进计划域名是什么 有什么用
  • 本土建站工作室wordpress视频api
  • 马鞍山网站建设与制作做本地门户网站
  • 做内网网站教程台州关键词优化价格
  • 建行官方网站登录平谷建站推广
  • 网站开发的核心技术网页设计学科门类是啥
  • 临沂建设局官方网站崇明建设机械网站
  • 学校网站群建设设计旅游商务平台网站建设功能需求
  • 如何用两台电脑做服务器建网站南山电商网站建设
  • 福田莲花网站建设制作网站的完整步骤
  • 夏邑县城乡建设规划局网站天津河东做网站
  • dw做一个小网站教程代理注册公司要多少钱
  • 成都都网站建设wordpress做门户网站
  • line 设计网站php 同学录在线网站开发
  • 天津市建设工程质量协会网站个人注册公司查询
  • 花果园营销型网站建设加强旅游网站建设
  • 15年做那个网站能致富陕西省建设厅官方网站
  • 德宏网站制作专业的新乡网站建设
  • 重庆网站推广免费软件南沙门户网站建设
  • 手机网站模板.制作网站软件下载
  • 做一个平台网站要多少钱私密性最好的浏览器
  • 网站代理软件wordpress分类翻页404
  • 广州vps网站沈阳网站推广公司排名
  • 做网站建设的怎么寻找客户沈阳网官方网站
  • 东莞企业网站哪家好给网站做插画分辨率
  • 影视网站的设计与实现商务型企业网站建设
  • 农村网站建设调查报告京东云wordpress后台
  • 做360效果图网站网站开发工程师是做什么的
  • 最大网站建设公司关键字优化工具
  • 淘宝优惠券查询网站怎么做wordpress打开速度太慢