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

网站研发公司/windows优化大师要钱

网站研发公司,windows优化大师要钱,二手书的网站建设,兰州的网站建设文章目录423 有效的括号序列492 队列维护541 左旋右旋迭代器 II421 简化路径575 字符串解码423 有效的括号序列 给定一个字符串所表示的括号序列,包含以下字符: ‘(’, ‘)’, ‘{’, ‘}’, ‘[’ and ‘]’, 判定是否是有效的括号序…

文章目录

  • 423 · 有效的括号序列
  • 492 · 队列维护
  • 541 · 左旋右旋迭代器 II
  • 421 · 简化路径
  • 575 · 字符串解码

423 · 有效的括号序列

给定一个字符串所表示的括号序列,包含以下字符: ‘(’, ‘)’, ‘{’, ‘}’, ‘[’ and ‘]’, 判定是否是有效的括号序列。

括号必须依照 “()” 顺序表示, “()[]{}” 是有效的括号,但 “([)]” 则是无效的括号。

在这里插入图片描述

def isValidParentheses(self, s):# write your code hereif not s: return Truestack = []for i in s:if i == '(' or i == '[' or i == '{':stack.append(i)else:if not stack: return Falseele = stack.pop()if (i == ')' and ele == '(') or (i == ']' and ele == '[') or (i == '}' and ele == '{'):continueelse:return Falsereturn not stack

492 · 队列维护

按链表实现队列。支持以下基本方法:
enqueue(item).将新元素放入队列中。
dequeue(). 将第一个元素移出队列,返回它。

在这里插入图片描述
看了之前写的改了一下

class MyQueue:"""@param: item: An integer@return: nothing"""def __init__(self):self.queue = Nonedef enqueue(self, item):# write your code hereif not self.queue:self.queue = ListNode(item)self.dummy = ListNode(-1, self.queue)else:self.queue.next = ListNode(item)self.queue = self.queue.next"""@return: An integer"""def dequeue(self):# write your code hereprint(self.dummy.next.val)res = self.dummy.next.valself.dummy = self.dummy.nextreturn res

下面是我之前写的:

class MyQueue:"""@param: item: An integer@return: nothing"""def __init__(self):self.beforehead = self.tail = ListNode(-1)def enqueue(self, item):# write your code hereself.tail.next = ListNode(item)self.tail = self.tail.next"""@return: An integer"""def dequeue(self):# write your code hereif self.beforehead.next is None:return -1head_val = self.beforehead.next.valself.beforehead = self.beforehead.nextreturn head_val

541 · 左旋右旋迭代器 II

和题目 左旋右旋迭代器 类似,在本题中,你将得到一个列表vecs,其中包括 k 个一维向量。
你的任务是通过 next 函数一个个地返回向量中的元素,按照 vecs[0][0], vecs[1][0]… vecs[k - 1][0], vecs[0][1], vecs[1][1]… vecs[k - 1][1], vecs[0][2], vecs[1][2]… vecs[k - 1][2]… 的顺序进行迭代。

在这里插入图片描述
没写出来。

from collections import deque
class ZigzagIterator2:"""@param: vecs: a list of 1d vectors"""def __init__(self, vecs):# do intialization if necessarymax_col = max([len(vec) for vec in vecs])self.queue = deque()for j in range(max_col):for i in range(len(vecs)):try:self.queue.append(vecs[i][j])except IndexError:pass"""@return: An integer"""def _next(self):# write your code hereself.queue.popleft()"""@return: True if has next"""def hasNext(self):# write your code hereif self.queue:return True# Your ZigzagIterator2 object will be instantiated and called as such:
# solution, result = ZigzagIterator2(vecs), []
# while solution.hasNext(): result.append(solution.next())
# Output result

看了之前写的,果然忘记了

import collectionsclass ZigzagIterator2:"""@param: vecs: a list of 1d vectors"""def __init__(self, vecs):# do intialization if necessaryself.queue = collections.deque()for vec in vecs:if len(vec) > 0:self.queue.append([iter(vec), len(vec)])"""@return: An integer"""def _next(self):# write your code herevec_iter, vec_len = self.queue.popleft()value = next(vec_iter)vec_len -= 1if vec_len > 0:self.queue.append([vec_iter, vec_len])return value"""@return: True if has next"""def hasNext(self):# write your code hereif self.queue:return True# Your ZigzagIterator2 object will be instantiated and called as such:
# solution, result = ZigzagIterator2(vecs), []
# while solution.hasNext(): result.append(solution.next())
# Output result

421 · 简化路径

给定一个文件的绝对路径(Unix-style),请进行路径简化。

Unix中, . 表示当前目录, … 表示父目录。

结果必须以 / 开头,并且两个目录名之间有且只有一个 /。最后一个目录名(如果存在)后不能出现 / 。你需要保证结果是正确表示路径的最短的字符串。
在这里插入图片描述
有一个过不去:

class Solution:"""@param path: the original path@return: the simplified path"""def simplify_path(self, path: str) -> str:# write your code herestack = []li = path.split('/')for i in li:if i.isalnum():stack.append(i)elif i == ".":continueelif i == "..":if stack: stack.pop()return "/" + "/".join(stack)            

在这里插入图片描述
在这里插入图片描述
下面是官方答案:

def simplifyPath(self, path):path = path.split('/')stack = []for i in path:if i == '..':if len(stack):stack.pop()elif i != '.' and i != '':stack.append(i)return '/' + '/'.join(stack)

按照答案,改了下代码:

def simplify_path(self, path: str) -> str:# write your code herestack = []li = path.split('/')for i in li:if i == "..":if stack: stack.pop()elif i != "." and i != "":stack.append(i)return '/' + '/'.join(stack)

575 · 字符串解码

给出一个表达式 s,此表达式包括数字,字母以及方括号。在方括号前的数字表示方括号内容的重复次数(括号内的内容可以是字符串或另一个表达式),请将这个表达式展开成一个字符串。

在这里插入图片描述
不会。直接看之前写的吧。
下面是之前写的。看了半天才想起来怎么做的。

def expressionExpand(self, s):# write your code herestack = []number = 0for ch in s:if ch.isdigit():number = number * 10 + int(ch)elif ch == '[':stack.append(number)number = 0elif ch == ']':strs = []while stack and not isinstance(stack[-1], int):strs.append(stack.pop())strs.reverse()repeat = stack.pop()for _ in range(repeat):stack.append("".join(strs))else:stack.append(ch)strs = []while stack:strs.append(stack.pop())strs.reverse()return ''.join(strs)

又自己写了一遍。学习了方法isinstance

def expressionExpand(self, s):# write your code herestack = []number = 0for ch in s:if ch.isdigit():number = number * 10 + int(ch)elif ch == '[':stack.append(number)number = 0elif ch == ']':strs = []while stack and not isinstance(stack[-1], int):strs.append(stack.pop())strs.reverse()repeat = stack.pop()for _ in range(repeat):stack.append(''.join(strs))else:stack.append(ch)ss = []while stack:ss.append(stack.pop())ss.reverse()return ''.join(ss)    
http://www.jmfq.cn/news/5254507.html

相关文章:

  • 湛江专业看房/漯河seo推广
  • 2017湖北建设教育协会网站/最全bt搜索引擎入口
  • 阿里云云服务器ecs做网站访问慢/企业文化标语经典
  • 哈尔滨大型网站设计公司/官方网站营销
  • 查询类网站用什么做/seo查询官方网站
  • 百度推广会帮你做网站不/国际最新新闻热点事件
  • 网站文章结构变更怎么做301/企业推广语
  • 网站发语音功能如何做/线下推广怎么做
  • 有赞做网站/首页排名seo
  • 做一家视频网站/东莞网站制作推广公司
  • 加人引流加人网站怎么做/企业网站建设cms
  • 科技布沙发/网站整站优化推广方案
  • 怎么做跳转网站 充值登陆/seo搜索引擎推广
  • 中国电力建设集团有限公司/百度推广优化是什么?
  • 自己怎么给网站做优化/seo推广软件哪个好
  • 自己做抽奖网站违法/软文代写价格
  • 广告设计制作专业/关键词优化的发展趋势
  • 江苏省住房和城乡建设厅网站首页/整站seo
  • gravatar wordpress 禁用/seo深圳网络推广
  • 网站建设 管理与维护试题/谷歌浏览器网页
  • 网站建设 cn/百度推广客服电话24小时
  • 玩具公司网站开发论文/手机百度账号登录入口
  • bae备份wordpress/武汉seo收费
  • 为什么做的网站有的有弹窗有的没有/高端网站建设报价
  • 石家庄做网站/全球最大的磁力搜索引擎
  • 驻马店北京网站建设/上海短视频培训机构
  • pc端和移动端的网站区别是什么意思/长沙seo
  • 长沙 网站设计 公司/seo网站结构优化的方法
  • 做的好看的pc端网站/二级域名注册平台
  • 福州建网站 做网页/拉新推广怎么找渠道