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

如何建立电子商务网站传奇三端互通新开服网站

如何建立电子商务网站,传奇三端互通新开服网站,微信网站建设报价,口碑好的网站设计制作价格前言 思路及算法思维,指路 代码随想录。 题目来自 LeetCode。 day 11,周六,又开始变的困难了~ 题目详情 [20] 有效的括号 题目描述 20 有效的括号 解题思路 前提:括号匹配 思路:利用栈的后入先出特性&#xf…

前言

思路及算法思维,指路 代码随想录。
题目来自 LeetCode。

day 11,周六,又开始变的困难了~

题目详情

[20] 有效的括号

题目描述

20 有效的括号
20 有效的括号

解题思路

前提:括号匹配
思路:利用栈的后入先出特性,进行匹配。
重点:栈的使用。

代码实现

C语言
bool isValid(char* s) {int len = strlen(s);char stack[len];memset(stack, 0, len);int top = -1;for (int i = 0; i < strlen(s); i++){if ((s[i] == '(') || (s[i] == '[') || (s[i] == '{')){stack[++top] = s[i];}else{if (top < 0){return false;}if (((s[i] == ')') && (stack[top] != '(')) || ((s[i] == ']') && (stack[top] != '[')) || ((s[i] == '}') && (stack[top] != '{'))){return false;}top--;}}if (top >= 0){return false;}return true;
}

可以进一步过滤字符串长度为奇数的情况……

bool isValid(char* s) {int len = strlen(s);if (len % 2 != 0){return false;}char stack[len];memset(stack, 0, len);int top = -1;for (int i = 0; i < strlen(s); i++){if ((s[i] == '(') || (s[i] == '[') || (s[i] == '{')){stack[++top] = s[i];}else{if (top < 0){return false;}if (((s[i] == ')') && (stack[top] != '(')) || ((s[i] == ']') && (stack[top] != '[')) || ((s[i] == '}') && (stack[top] != '{'))){return false;}top--;}}if (top >= 0){return false;}return true;
}

[1047] 删除字符串中的所有相邻重复项

题目描述

1047 删除字符串中的所有相邻重复项
1047 删除字符串中的所有相邻重复项

解题思路

前提:删除相邻重复字母
思路:利用栈的后入先出的特性,进行匹配
重点:注意当前字母需要与栈顶元素比较。

代码实现

C语言
char* removeDuplicates(char* s) {int slen = strlen(s);char *stack = (char *)malloc(sizeof(char) * slen);memset(stack, 0, slen);int top = -1;for (int i = 0; i < slen; i++){if ((top >= 0) && (s[i] == stack[top])){stack[top] = '\0';top--;}else{stack[++top] = s[i];}}return stack;
}

[150] 逆波兰表达式求值

题目描述

150 逆波兰表达式求值
150 逆波兰表达式求值

解题思路

前提:逆波兰表达式
思路:利用栈的后入先出特性实现。
重点:注意数值可能出现负数,自实现string转换数值时,需要考虑负数情况;也可以直接使用atoi函数。

代码实现

C语言
int evalRPN(char** tokens, int tokensSize) {int stack[tokensSize];int top = -1;for (int i = 0; i < tokensSize; i++){// 判断该元素是否为算符if ((strlen(tokens[i]) == 1) && ((tokens[i][0] == '*') || (tokens[i][0] == '/') || (tokens[i][0] == '+') || (tokens[i][0] == '-'))){if (top < 1){return 0;}int val2 = stack[top--];int val1 = stack[top--];int res = 0;if (tokens[i][0] == '*'){res = val1 * val2;}else if (tokens[i][0] == '/'){res = val1 / val2;}else if (tokens[i][0] == '+'){res = val1 + val2;}else{res = val1 - val2;}stack[++top] = res;continue;}// 该元素不为算符,需要注意负数的情况int len = strlen(tokens[i]);int val = 0;for (int j = 0; j < len; j++){if (tokens[i][j] != '-'){val = val * 10 + (tokens[i][j] - '0');}}if (tokens[i][0] != '-'){stack[++top] = val;}else{stack[++top] = 0 - val;}}return stack[top];
}

也可以直接使用atoi函数转换……

int evalRPN(char** tokens, int tokensSize) {int stack[tokensSize];int top = -1;for (int i = 0; i < tokensSize; i++){// 判断该元素是否为算符if ((strlen(tokens[i]) == 1) && ((tokens[i][0] == '*') || (tokens[i][0] == '/') || (tokens[i][0] == '+') || (tokens[i][0] == '-'))){if (top < 1){return 0;}int val2 = stack[top--];int val1 = stack[top--];int res = 0;if (tokens[i][0] == '*'){res = val1 * val2;}else if (tokens[i][0] == '/'){res = val1 / val2;}else if (tokens[i][0] == '+'){res = val1 + val2;}else{res = val1 - val2;}stack[++top] = res;continue;}// 该元素不为算符stack[++top] = atoi(tokens[i]);}return stack[top];
}

今日收获

  1. 栈的使用。
http://www.yayakq.cn/news/660817/

相关文章:

  • 网站建设psdwordpress设置ssl不成功
  • 快速提高网站关键词排名优化中信建设网站
  • 可信网站是否必须做济南建站培训
  • 网站招聘方案怎么做网站漂浮物怎么做
  • 微信网站模版下载wordpress 自动 采集
  • 鸿邑科技 网站建设做网站用笔记本电脑
  • 网站建设桔子科技湖南小程序管理平台
  • html门户网站模板wordpress搭建的小程序
  • 网站主机免费申请泉州网站建站模板
  • 网站开发主流河南郑州网站关键词排名助手
  • 中国男女直接做的视频网站怎么提高网站访问量
  • 台州公司网站外包农产品网站建设策划
  • 网站建设算软件还是硬件北京装修公司排名前十口碑推荐
  • 站酷设计网站首页公司网站 域名 申请 空间
  • 企业外贸网站建设Myeclipse怎么做网站
  • 定制网站建设的流程图网站建设边框
  • 长春建站公司模板logo在线设计标小智
  • 杭州网站建设加q479185700书法网站建站目标
  • 桂林网站建设兼职腾讯朋友圈广告投放价格
  • 做导航网站犯法吗有南昌网站优化公司
  • 社交网站推广怎么做机械设备怎样做网络推广
  • 小说网站开发需求分析高能建站
  • f福州网站建设公司校园网站开发需求文字
  • 个人网站起个名字哪个学校的计算机专业最好
  • 如何做医药类网站博山区住房和城乡建设局网站
  • 中国做网站公司排名电子商务网站建设与管理课程评价
  • 人力招聘网站建设互联网营销策划方案
  • 吉林智能建站系统价格wordpress 域名 ip
  • 江西省寻乌县建设局网站郴州网站设计公司
  • 做网站 珠海电子商务网站系统规划