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

西部数码网站管理助手 ftp上传文件失败如何点击优化神马关键词排名

西部数码网站管理助手 ftp上传文件失败,如何点击优化神马关键词排名,设计课程,建英语网站记录了初步解题思路 以及本地实现代码;并不一定为最优 也希望大家能一起探讨 一起进步 目录 2/24 1656. 设计有序流2/25 2502. 设计内存分配器2/26 1472. 设计浏览器历史记录2/27 2296. 设计一个文本编辑器2/28 2353. 设计食物评分系统3/1 131. 分割回文串3/2 132. …

记录了初步解题思路 以及本地实现代码;并不一定为最优 也希望大家能一起探讨 一起进步


目录

      • 2/24 1656. 设计有序流
      • 2/25 2502. 设计内存分配器
      • 2/26 1472. 设计浏览器历史记录
      • 2/27 2296. 设计一个文本编辑器
      • 2/28 2353. 设计食物评分系统
      • 3/1 131. 分割回文串
      • 3/2 132. 分割回文串 II


2/24 1656. 设计有序流

数组保存数据 插入数据后
检查指针节点是否可以往后移动

class OrderedStream(object):def __init__(self, n):""":type n: int"""self.n = nself.ptr = 0self.l = [""]*(n+1)def insert(self, idKey, value):""":type idKey: int:type value: str:rtype: List[str]"""ans = []self.l[idKey] = valuewhile self.ptr<self.n and self.l[self.ptr+1]!="":ans.append(self.l[self.ptr+1])self.ptr +=1if self.ptr>self.n:breakreturn ans

2/25 2502. 设计内存分配器

使用长度为n的数字 记录每个位置内存使用情况

class Allocator(object):def __init__(self, n):""":type n: int"""self.n=nself.mem=[0]*ndef allocate(self, size, mID):""":type size: int:type mID: int:rtype: int"""cnt = 0for i in range(self.n):if self.mem[i]>0:cnt=0else:cnt+=1if cnt==size:for j in range(i-cnt+1,i+1):self.mem[j]=mIDreturn i-cnt+1return -1def freeMemory(self, mID):""":type mID: int:rtype: int"""cnt = 0for i in range(self.n):if self.mem[i]==mID:cnt+=1self.mem[i]=0return cnt

2/26 1472. 设计浏览器历史记录

模拟 使用一个数组urls保存网页记录
cur指向当前访问的网页索引

class BrowserHistory(object):def __init__(self, homepage):""":type homepage: str"""self.urls = [homepage]self.cur = 0def visit(self, url):""":type url: str:rtype: None"""self.urls = self.urls[:self.cur+1]self.urls.append(url)self.cur+=1def back(self, steps):""":type steps: int:rtype: str"""self.cur = max(0,self.cur-steps)return self.urls[self.cur]def forward(self, steps):""":type steps: int:rtype: str"""self.cur = min(len(self.urls)-1,self.cur+steps)return self.urls[self.cur]

2/27 2296. 设计一个文本编辑器

使用left,right两个栈分别存储光标左右的内容
add:将text压入left中
delete:从left中取出k个直至为空
cursorleft:将left中取出放入right中
cursorright:将right中取出放入left中

class TextEditor(object):def __init__(self):self.left=[]self.right=[]def addText(self, text):""":type text: str:rtype: None"""self.left.extend(text)def deleteText(self, k):""":type k: int:rtype: int"""cnt=min(k,len(self.left))del self.left[-cnt:]return cntdef cursorLeft(self, k):""":type k: int:rtype: str"""for _ in range(min(k,len(self.left))):self.right.append(self.left.pop())return ''.join(self.left[-10:])def cursorRight(self, k):""":type k: int:rtype: str"""for _ in range(min(k,len(self.right))):self.left.append(self.right.pop())return ''.join(self.left[-10:])

2/28 2353. 设计食物评分系统

foodmap维护food对应的分数和烹饪方法
ratemap[cuisines] 使用最小堆维护同一烹饪方法中的分数 用负数变为最大堆

import heapq
class FoodRatings(object):def __init__(self, foods, cuisines, ratings):""":type foods: List[str]:type cuisines: List[str]:type ratings: List[int]"""self.food={}self.rate={}self.n=len(foods)for i in range(self.n):f = foods[i]c = cuisines[i]r = ratings[i]self.food[f]=(c,r)if c not in self.rate:self.rate[c]=[]heapq.heappush(self.rate[c], (-r,f))def changeRating(self, food, newRating):""":type food: str:type newRating: int:rtype: None"""c,r = self.food[food]heapq.heappush(self.rate[c], (-newRating,food))self.food[food]=(c,newRating)def highestRated(self, cuisine):""":type cuisine: str:rtype: str"""while self.rate[cuisine]:r,f = self.rate[cuisine][0]if -r == self.food[f][1]:return fheapq.heappop(self.rate[cuisine])return ""

3/1 131. 分割回文串

check检查字符串l是否回文
pdic存放pos开头所有回文的子串

def partition(s):""":type s: str:rtype: List[List[str]]"""def check(l):t = Trueif len(l)==0:return twhile t and len(l)>1:if l[0]==l[-1]:l.pop(0)l.pop(-1)else:t = Falseif len(l)>1:return Falseelse:return Trueret =[]if len(s)==0:return retl = list(s)    dic = {}for i in range(len(l)):begin = l[i]for j in range(len(l)-1,i-1,-1):if begin == l[j]:if check(l[i:j+1]):dic[(i,j)] = l[i:j+1]pdic = {}for i in dic:pos = i[0]tmp = pdic.get(pos,[])tmp.append(i)pdic[pos] = tmpdef combine(begin):ret = []va = pdic[begin]for v in va:end = v[1]if end == (len(s)-1):ret.append([v])else:l = combine(end+1)for t in l:t.insert(0,v)ret.extend(l)     return retr = combine(0)for v in r:tmp = []for i in v:tmp.append(''.join(dic[i]))ret.append(tmp)return ret

3/2 132. 分割回文串 II

m[i][j]true表示[i,j]为回文串
dp[i]记录0~i最少分割切几次


def minCut(s):""":type s: str:rtype: int"""n = len(s)##预处理 判断i,j是否为回文串m = [[True]*n for _ in range(n)] for i in range(n-1,-1,-1):for j in range(i+1,n):m[i][j] = (s[i]==s[j]) and m[i+1][j-1]dp = [float("inf")] * nfor i in range(n):if m[0][i]: ##如果0-i为回文串 不需要切割dp[i]=0else:for j in range(i):if m[j+1][i]:dp[i] = min(dp[i],dp[j]+1)return dp[n-1]

http://www.mmbaike.com/news/102686.html

相关文章:

  • 在线做分析图的网站做高端网站公司
  • 做网站需要懂哪些技能独立站谷歌seo
  • 如何利用社交网站做招聘怎样做企业推广
  • 广元网站建设工作室长春网站优化方案
  • wordpress大流量seo百度推广
  • 自学做衣服的网站广告素材
  • 吾爱源码西安网络seo公司
  • 网站开发文档源码网页设计用什么软件做
  • 为什么大型网站都用phpgoogle seo教程
  • 提示危险网站正规排名网站推广公司
  • 网站类别标签文本百度云网页版登录入口
  • 有什么做公众号封面图的网站新媒体营销策略有哪些
  • 专做婚礼logo的网站seo挖关键词
  • 网站推广到海外怎么做商丘网站建设公司
  • 怎么做卖橘子的网站网络营销评价的名词解释
  • 上海公司车牌本月价格关键词排名优化工具有用吗
  • 做淘宝联盟网站要多少钱中央新闻今日要闻
  • 六安裕安区最新疫情seo排名大概多少钱
  • 大连做网站nba排名榜
  • 苏州外贸营销网站建设刷关键词排名seo
  • 自己做的网站访问速度慢三叶草gy5987
  • 随州seo优化seo优化入门教程
  • seo岗位企业seo关键字优化
  • 彩票做网站项目推广网
  • 欧美专业牙科医院网站网页源码私人做网站建设
  • 怎样用自己电脑做网站百度指数怎么分析
  • 燕郊医院网站建设网站收录优化
  • 黄骅网站建设公司今日头条新闻10条简短
  • 两学一做党员答题网站网络推广引流是做什么的
  • 建站后角度是不是0百度seo关键词排名优化