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

网络规划设计师吧windows优化大师的作用

网络规划设计师吧,windows优化大师的作用,b2c电子商务网站规划说明书,网络推广外包内容20. 有效的括号 这个是典型的使用栈,来进行匹配。 因为栈是先进后出,所以,最近的左括号一定在栈顶。如果不是,则就是不匹配了。 func isValid(s string) bool {stack : Stack{}dict : map[byte]byte {): (,]: [,}: {,}for _, it…

20. 有效的括号

这个是典型的使用栈,来进行匹配。
因为栈是先进后出,所以,最近的左括号一定在栈顶。如果不是,则就是不匹配了。

func isValid(s string) bool {stack := Stack{}dict := map[byte]byte {')': '(',']': '[','}': '{',}for _, item := range []byte(s) {if leftVal, ok := dict[item]; ok {if stack.pop() != leftVal {return false}} else {stack.push(item)}}return stack.length == 0
}type Stack struct {data []bytelength int
}func (s *Stack) pop() (v byte) {if s.length < 1 {return }v = s.data[s.length-1]s.data = s.data[:s.length-1]s.length--return 
}func (s *Stack) push(v byte) {s.data = append(s.data, v)s.length++
} 

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

func removeDuplicates(s string) string {// 思路:和栈顶不等的时候,s2 := []byte(s)stack := Stack{}stack.push(s2[0])for i := 1; i < len(s2); i++ {if v := stack.top(); v != s2[i] {stack.push(s2[i])} else {stack.pop()}}return string(stack.data)
}type Stack struct {data []bytelength int
}func (s *Stack) pop() (v byte) {if s.length < 1 {return }v = s.data[s.length-1]s.data = s.data[:s.length-1]s.length--return 
}func (s *Stack) top() (v byte) {if s.length < 1 {return }v = s.data[s.length-1]return 
}func (s *Stack) push(v byte) {s.data = append(s.data, v)s.length++
} 

题目中是连续两个重复字符才删除,那么是多个重复字符如何删除呢?
可以增加一个last_char 变量,存放着上一次的结果。

s2 := []byte(s)
stack := Stack{}
stack.push(s2[0])
var lastChar = s2[0]
for i := 1; i < len(s2); i++ {v := stack.top()if v == s2[i] {stack.pop()} else if (v != lastChar) && (v != s2[i]) {// 和上一次字符相同时,不需要入栈stack.push(s2[i])}
}
return string(stack.data)

6. 逆波兰表达式求值

逆波兰表达式是一种后缀表达式,运算符号在后面,前面俩是运算数。

本质上还是使用栈来进行取值,然后运算。

import "strconv"func evalRPN(tokens []string) int {// 思路:符号就退出两个数字,然后运算既可stack := Stack{}var (s1 ints2 intresult int)for _, val := range tokens {if val == "+" || val == "-" || val == "*" || val == "/" {s2 = stack.pop()s1 = stack.pop()if val == "+" {stack.push(s1 + s2)} else if val == "-" {stack.push(s1 - s2)} else if val == "*" {stack.push(s1 * s2)} else if val == "/" {stack.push(s1 / s2)}} else {intVal, _ := strconv.Atoi(val)stack.push(intVal)}}result = stack.pop()return result
}type Stack struct {data []intlength int
}func (s *Stack) pop() (v int) {if s.length < 1 {return }v = s.data[s.length-1]s.data = s.data[:s.length-1]s.length--return 
}func (s *Stack) top() (v int) {if s.length < 1 {return }v = s.data[s.length-1]return 
}func (s *Stack) push(v int) {s.data = append(s.data, v)s.length++
} 
http://www.dinnco.com/news/68494.html

相关文章:

  • 低价网站建设网上怎么注册公司免费的
  • 电商网站如何设计内容营销策划与运营团队
  • 南通做网站厉害的免费域名解析平台
  • 六安网站制作哪里有小程序开发公司十大排名
  • 支付集成文件放在网站哪里自助建站免费搭建个人网站
  • 佛山从事网站建设网络营销课程培训机构
  • 空白的网站怎么建设百度网址提交入口平台
  • 网站设计主要内容中国十大seo公司
  • wordpress 自动替换廊坊seo网络推广
  • 网站建设服务公打开全网搜索
  • 外贸网站增加外链方法企业网站设计规范
  • 怎么从网站上看出做网站的日期国际重大新闻
  • 贵州省住房和城乡建设厅网站培训网站模板
  • 做团购网站需要什么电商推广联盟
  • div css快速做网站网络营销团队
  • 网站刚通过备案如何做好推广工作
  • 网站主要内容郑州互联网公司排名
  • 看男女做那个真实视频网站百度度小店申请入口
  • 南宁企业网站推广技巧win7怎么优化最流畅
  • jsp做网站 案例360网站推广客服电话
  • 网站建设广州网站建设免费建立个人网站官网
  • 保健品企业网站济南seo关键词优化方案
  • 杭州做网站哪家最好seo外链发布工具
  • wordpress 页面标题常州百度关键词优化
  • 织梦网站管理系统惠州抖音seo策划
  • 学做吃的的网站软文怎么写
  • excel网站链接怎么做批量百度客服在哪里找
  • 南通网站建设招聘网络营销做的比较好的企业
  • 做网站要签合同吗茂名seo顾问服务
  • 南昌网站制作搜狗seo刷排名软件