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

ppt做的好的网站有哪些东莞网站制作推广公司

ppt做的好的网站有哪些,东莞网站制作推广公司,如何设计公众号,wordpress 破解后台题目: 给你一个字符串 s 和一个整数 k ,请你将 s 分成 k 个 子字符串 ,使得每个 子字符串 变成 半回文串 需要修改的字符数目最少。 请你返回一个整数,表示需要修改的 最少 字符数目。 注意: 如果一个字符串从左往…

题目:

给你一个字符串 s 和一个整数 k ,请你将 s 分成 k 个 子字符串 ,使得每个 子字符串 变成 半回文串 需要修改的字符数目最少。

请你返回一个整数,表示需要修改的 最少 字符数目。

注意:

如果一个字符串从左往右和从右往左读是一样的,那么它是一个 回文串 。
如果长度为 len 的字符串存在一个满足 1 <= d < len 的正整数 d ,len % d == 0 成立且所有对 d 做除法余数相同的下标对应的字符连起来得到的字符串都是 回文串 ,那么我们说这个字符串是 半回文串 。比方说 “aa” ,“aba” ,“adbgad” 和 “abab” 都是 半回文串 ,而 “a” ,“ab” 和 “abca” 不是。
子字符串 指的是一个字符串中一段连续的字符序列。

示例 1:

输入:s = “abcac”, k = 2
输出:1
解释:我们可以将 s 分成子字符串 “ab” 和 “cac” 。子字符串 “cac” 已经是半回文串。如果我们将 “ab” 变成 “aa” ,它也会变成一个 d = 1 的半回文串。
该方案是将 s 分成 2 个子字符串的前提下,得到 2 个半回文子字符串需要的最少修改次数。所以答案为 1 。
示例 2:

输入:s = “abcdef”, k = 2
输出:2
解释:我们可以将 s 分成子字符串 “abc” 和 “def” 。子字符串 “abc” 和 “def” 都需要修改一个字符得到半回文串,所以我们总共需要 2 次字符修改使所有子字符串变成半回文串。
该方案是将 s 分成 2 个子字符串的前提下,得到 2 个半回文子字符串需要的最少修改次数。所以答案为 2 。
示例 3:

输入:s = “aabbaa”, k = 3
输出:0
解释:我们可以将 s 分成子字符串 “aa” ,“bb” 和 “aa” 。
字符串 “aa” 和 “bb” 都已经是半回文串了。所以答案为 0 。

提示:

2 <= s.length <= 200
1 <= k <= s.length / 2
s 只包含小写英文字母。

java代码:

class Solution {char[] chars;int[][] dps;int[][] checks;public int minimumChanges(String s, int k) {this.chars = s.toCharArray();final int n = chars.length;this.dps = new int[n][k + 1];this.checks = new int[n][n];return dp(0, k) - k;}private int checkD(int head, int tail, int d) {final int length = tail - head + 1;int res = 0;for (int x = 0; x < d; x++) {for (int left = head + x, right = left + length - d; left < right; left += d, right -= d) {if (chars[left] != chars[right]) res++;}}return res;}private int check(int head, int tail) {if (checks[head][tail] > 0) return checks[head][tail];int length = tail - head + 1;int sq = (int)Math.sqrt(length);int best = checkD(head, tail, 1);for (int d = 2; d <= sq; d++) {if (length % d > 0) continue;best = Math.min(best, checkD(head, tail, d));best = Math.min(best, checkD(head, tail, length / d));}return checks[head][tail] = best + 1;}private int dp(int head, int k) {if (k == 1) return check(head, chars.length - 1);if (dps[head][k] > 0) return dps[head][k];final int end = chars.length - (k - 1) * 2;int best = Integer.MAX_VALUE;for (int tail = head + 1; tail < end; tail++) {int res = check(head, tail) + dp(tail + 1, k - 1);best = Math.min(best, res);}return dps[head][k] = best;} 
}
http://www.fp688.cn/news/155458.html

相关文章:

  • 化妆品网站建设可行性分析南宁seo排名外包
  • 专业做网站上海成都全网营销推广
  • 企业网站后台管理软件全网营销一站式推广
  • 哈尔滨网站设计定制软文推广有哪些平台
  • 贵阳网站建设-中国互联好口碑关键词优化地址
  • 网站建设有哪些问题成都外贸seo
  • 怎么做粉丝福利购网站企业网络推广的方法
  • 免费网站建站页面宁波网站制作设计
  • wordpress文章前端按钮青岛建站seo公司
  • 海南seo外包百度seo优化分析
  • 新做的网站怎样让百度收录站长网站推广
  • 口碑好的企业网站开发网站建立的步骤
  • 最专业的医疗网站建设中国制造网外贸平台
  • 科技局网站建设方案整站优化代理
  • 信誉好的郑州网站建设无锡做网站的公司
  • 门户类网站模板青岛网站建设制作公司
  • 网站栏目划分怎么做百度网络营销中心官网
  • 注塑模具东莞网站建设公司运营策划方案
  • 自己接单做网站乔拓云智能建站官网
  • 网页和网站的区别外贸接单平台网站
  • 济南平面设计公司前十名如何进行网站性能优化?
  • 在线营销单页网站制作怎么制作个人网站
  • 做微博类的网站难吗体球网足球世界杯
  • 个人备案的网站内容互联网品牌的快速推广
  • 咸宁网站建设windows优化大师会员兑换码
  • web手机版网站开发框架上海企业优化
  • 网上接单做网站链接提交工具
  • 网站收录不稳定做网站公司哪家比较好
  • 做网站 域名不属于app开发网站
  • 网站做友情链接seo是什么意思职业