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

网站建站网站的百度推广区域代理

网站建站网站的,百度推广区域代理,wordpress多用户blog,wordpress 固定链接404题目描述: 字符串的 波动 定义为子字符串中出现次数 最多 的字符次数与出现次数 最少 的字符次数之差。 给你一个字符串 s ,它只包含小写英文字母。请你返回 s 里所有 子字符串的 最大波动 值。 子字符串 是一个字符串的一段连续字符序列。 代码思路…

题目描述:

字符串的 波动 定义为子字符串中出现次数 最多 的字符次数与出现次数 最少 的字符次数之差。

给你一个字符串 s ,它只包含小写英文字母。请你返回 s 里所有 子字符串的 最大波动 值。

子字符串 是一个字符串的一段连续字符序列。

代码思路:

  1. 预处理字符位置:首先统计每个字符在字符串中的所有出现位置,并在末尾添加一个哨兵值(字符串长度n),便于处理边界情况。
  2. 遍历字符对:对于每个字符对(M, m),使用双指针遍历它们的出现位置列表,动态调整窗口以最大化M的出现次数,同时最小化m的出现次数。
  3. 动态调整窗口
    • 当M的当前位置小于m的当前位置时,扩展窗口右端以增加M的计数。
    • 反之,扩展窗口右端以增加m的计数。
    • 当m的计数超过1时,收缩窗口左端以减少m的计数,确保m的计数不超过1。
  4. 计算波动值:在每次调整窗口后,若m的计数大于0,则计算当前窗口的波动值并更新全局最大值。

代码实现:

class Solution:def largestVariance(self, s: str) -> int:n = len(s)table = defaultdict(list)for i, c in enumerate(s):table[c].append(i)for t in table.values():t.append(n) # 加一个额外结尾,方便遍历result = 0for M in table.keys():Mq = table[M]for m in table.keys():if M == m: continuemq = table[m]Mleft = Mright = 0mleft = mright = 0Mc = mc = 0while Mq[Mright] != mq[mright]: # 都到达最后时都是 nif Mq[Mright] < mq[mright]:Mright += 1Mc += 1else:mright += 1mc += 1while mc > 1:# 最左侧直接就是一个更少的if mq[mleft] < Mq[Mleft]: mleft += 1mc -= 1# 最左侧弹出一个多的一个少的else:mleft += 1Mleft += 1mc -= 1Mc -= 1if mc:result = max(result, Mc - mc)return result

 

http://www.dtcms.com/wzjs/472469.html

相关文章:

  • 淘宝客做网站推广企业内训课程
  • 动态图表网站昆明百度推广开户
  • 宜春市建设局网站电子商务网站推广策略
  • 多用户商城系统网站建设农夫山泉软文300字
  • 网站建设优化怎么做推广普通话奋进新征程手抄报
  • 启东住房和城乡建设局网站友情链接联盟
  • 湖北建设厅网站首页搜索引擎优化中的步骤包括
  • 邢台做网站多少钱海南快速seo排名优化
  • falsh网站模板下载营销推广seo
  • 定制衣服的网站电商网站制作
  • 免费建立教育网站seo实战培训视频
  • 麦田建设工程网站微信广告投放推广平台多少费用
  • 桐乡做网站的公司百度推广费
  • 网站建设 百度云星沙网站优化seo
  • 网站后台管理需求武汉seo关键词排名
  • 陕西网站建设报价德阳网站seo
  • 新乡做网站价格中国新冠疫情最新消息
  • 如何加强旅游电子商务网站的建设百度旗下所有app列表
  • 深圳做网站公司华线上营销课程
  • jsp购物网站开发环境专业seo优化公司
  • 星火网站建设厦门百度竞价
  • 自己做的网站如何让百度收录东莞seo建站投放
  • 随州什么公司做网站昆明seocn整站优化
  • 网站备案相关手续费服务营销策划方案
  • 网上购物网站建设公司希爱力双效片
  • 微信公众号怎么做微网站吗广告投放是做什么的
  • 网建会优化seo方法
  • 怎样做百度网站推广百度近日收录查询
  • 访问网站获取qqseo外包品牌
  • 免费发布信息网有哪些网站html网页制作代码