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

wordpress有赞收款插件一点优化

wordpress有赞收款插件,一点优化,左右设计家官网,百度云搜索入口题目描述 字符串中最多数目的子序列 解题思路: 题目要求我们找到在 text 中 找到最多可组成 pattern 的字符串个数,并且允许在 text 的任意位置插入 pattern 中一个字符,也就是说我们只需要考虑 text 中的 pattern 含有的字符即可。例如示例…

题目描述

字符串中最多数目的子序列

解题思路:

题目要求我们找到在 text 中 找到最多可组成 pattern 的字符串个数,并且允许在 text 的任意位置插入 pattern 中一个字符,也就是说我们只需要考虑 text 中的 pattern 含有的字符即可。例如示例 1 中 text = "abdcdbc",pattern = "ac",如果只考虑 text 中的 ac 即可将 text 简化为 "acc",这样一来就看起来简单多了。

由上面的图可以知道,"acc" 中可组成 "ac" 的个数为 3。再考虑往 text 中添加 "a" 或 "c",为了使添加后个数最多,可以选择将 "a" 放在第一个位置上,或把 "c" 放在最后一个位置上,可以组成如下图所示的两种情况:

由上图可以看出,由于 text 中 "c" 的数目较多,所以将 "a" 添加在 text 首端,可再组成 "c" 的数目个配对

总结一个式子:result = text匹配对数 + text中数目较多 pattern 中含有的字符

text中数目较多 pattern 中含有的字符容易统计遍历一遍 text 即可。

下面来看看 text 匹配对数该如何计算:

leetcode给出的示例不足以展示所有的情况,所以看以下两个示例:

第 1 个 "c" 可匹配 "ac"个数:1。因为他的前面有 1 个 "a";

第 2 个 "c" 可匹配 "ac"个数:2。因为他的前面有 2 个 "a";

第 3 个 "c" 可匹配 "ac"个数:2。因为他的前面有 2 个 "a";

text 中共计可匹配个数为:1 + 2 + 2 = 5。

由于 text 中 "a" 的个数为 2,"c" 的个数为 3,"c" 的数目比较多,所以最终结果在加上 3,最终结果为 8。

综上可以看出来我们只需要遍历一次 text,统计出来 "a","c"个数和 "c" 前面的 "a" 个数求和即可。

再来看另一个特殊情况

示例中 pattern 的两个字符相同,在任意位置添加一个 r 计算可匹配的个数即可

如图,由第一个 "r" 匹配结果,可组成 3 对。依次类推,第二个可组成 2 对,第三个可组成 1 对。最终结果 = 3 + 2 + 1 = 6

显然这是一个等差数列求和。求和公式Sn = (首项 + 末项) * 项数 / 2。在此题中,第一项从 3 开始,即 text 中 "r" 的个数。所以我们可以直接用 text 中 "r" 的个数求和。

代码实现

 class Solution {public long maximumSubsequenceCount(String text, String pattern) {// 为什么转成 char 数组, 别问, 问就是快char[] charArray = text.toCharArray();// pattern中的第一个字符char first = pattern.charAt(0);// pattern中的第二个字符char second = pattern.charAt(1);// 最终返回结果long res = 0;// 第一个字符的个数int firstCount = 0;// 第二个字符的个数int secondCount = 0;// 统计原来text中可组成pattern的个数for (char c : charArray) {if (c == first) {// 统计第一个字符的个数firstCount++;} else if (c == second) {// 统计第二个字符的个数secondCount++;// 碰到第二个字符时, 将其可匹配的个数加到结果中res += firstCount;}}/*情况1:pattern 中两个字符不同可添加一个字符将第一个字符插入到0的位置上, 可以增加 secondCount 个结果将第二个字符插入到 text 末尾, 可以增加 firstCount 个结果比较 firstCount 和 secondCount, 哪个大就用哪一个组成结果​情况1:pattern 中两个字符相同如果 pattern 两个字符相同, 直接统计该字符的个数, 等差数列求和即可*/return first == second ? ((long) firstCount + 1) * firstCount / 2 : firstCount > secondCount ? res + firstCount : res + secondCount;}}
http://www.yayakq.cn/news/196555/

相关文章:

  • 素材下载平台网站源码找货源上什么平台最好
  • 营销型网站的域名j江苏省建设工程招投标网站
  • 家具网站模版杭州app开发外包公司
  • 珠海做网站三年多少钱传统企业建设网站的内容
  • 搜狗网站seo网站建设公司公司好
  • 公司建设网站的通知书济南网站开发薪酬
  • 深圳整站wordpress页面更好看
  • 做网站要排版吗长沙网站开发
  • 网站的基础知识校园网站建设实施方案
  • 有没有做网站的公司美食网站网页设计
  • 石家庄网站建设seo优化营销苏州网站网站建设
  • 1做网站凡科做网站怎么样
  • 免费推广网站58东营兴通建设工程公司网站
  • 网站推广工具工作室闲鱼网站如何赚钱
  • 网站建设设计报价做搜狗网站排名软件
  • 贵阳培训网站建设wordpress精简代码
  • 格子铺网站建设方案重庆建站管理系统价格
  • 企业网站维护工作计划淮安app开发
  • 山西省城乡住房和建设厅网站首页上海闸北网站建设
  • 网站源码怎么打开长沙网络营销师最新招聘信息
  • 做网站外包公司名称产品软文代写
  • 石家庄网站编辑陈铭生
  • 永仁县工程建设信息网站用户体验差有哪些网站
  • 手机网站建站公司有哪些重庆市建设工程
  • 个人网站的设计及实现定制家具品牌排行榜前十名
  • 访问不了服务器的网站哪个网站做设计兼职不用压金
  • asp做的网站数据库在哪里7牛wordpress
  • 广西城乡和建设厅网站首页产品如何推广
  • 西安网站开发服务多少钱工程造价信息月刊
  • 网页设计制作网站开发建设新手建站基础入门到精通视频教程深圳住房和建设局网站哪里预约