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

wordpress临时文件夹网站关键词排名优化价格

wordpress临时文件夹,网站关键词排名优化价格,网站外包价格 北京网站制作公司,不用代码做网站 知乎问题描述 小R得到了一个由大写字母组成的字符串,长度为 n。她可以对字符串中的字符进行修改,每次操作允许将某个位置的字符修改为任意字符。例如,字符串 ABC 的第一个字符 A 改为 B,则字符串变为 BBC。她最多可以进行 k 次这样的…

问题描述

小R得到了一个由大写字母组成的字符串,长度为 n。她可以对字符串中的字符进行修改,每次操作允许将某个位置的字符修改为任意字符。例如,字符串 ABC 的第一个字符 A 改为 B,则字符串变为 BBC。她最多可以进行 k 次这样的修改。

小R想知道,通过最多 k 次修改后,字符串中由最多两种不同字母组成的最长连续子串的长度是多少。


测试样例

样例1:

输入:n = 6 ,k = 1 ,inp = "ABCBAD"
输出:5

样例2:

输入:n = 5 ,k = 1 ,inp = "AEABD"
输出:4

样例3:

输入:n = 8 ,k = 2 ,inp = "AAAABBCD"
输出:8

#include <algorithm>
#include <iostream>
#include <string>
#include <unordered_set>
#include <vector>using namespace std;int solution(int n, int k, std::string s) {if (n <= 2)return n;int max_len = 0;unordered_set<char> char_set(s.begin(), s.end());vector<char> chars;for (auto &p : char_set)chars.push_back(p);for (char char1 : chars) {for (char char2 : chars) {if (char1 == char2)continue;int left = 0;int count1 = 0;int count2 = 0;int total = 0;for (int right = 0; right < n; ++right) {total++;if (s[right] == char1)count1++;else if (s[right] == char2)count2++;while (total - count1 - count2 > k) {if (s[left] == char1)count1--;else if (s[left] == char2)count2--;left++;total--;}max_len = max(max_len, total);}}}for (char char1 : chars) {int left = 0;int count = 0;int total = 0;for (int right = 0; right < n; ++right) {total++;if (s[right] == char1)count++;while (total - count > k) {if (s[left] == char1)count--;++left;--total;}max_len = max(max_len, total);}}return max_len;
}int main() {std::cout << (solution(6, 1, "ABCBAD") == 5)<< std::endl; // Expected: 1 (true)std::cout << (solution(5, 1, "AEABD") == 4)<< std::endl; // Expected: 1 (true)std::cout << (solution(8, 2, "AAAABBCD") == 8)<< std::endl; // Expected: 1 (true)return 0;
}
package mainimport ("fmt"
)// solution 返回通过最多 k 次修改后,包含最多两种字母的最长子串长度
func solution(n, k int, s string) int {if n <= 2 {return n}maxLen := 0// 获取唯一字符集合charSet := make(map[rune]bool)for _, c := range s {charSet[c] = true}// 将字符放入切片chars := make([]rune, 0, len(charSet))for c := range charSet {chars = append(chars, c)}// 枚举两种字母组合for _, char1 := range chars {for _, char2 := range chars {if char1 == char2 {continue}left, count1, count2, total := 0, 0, 0, 0for right := 0; right < n; right++ {total++if rune(s[right]) == char1 {count1++} else if rune(s[right]) == char2 {count2++}// 缩小窗口直到修改次数 <= kfor total-count1-count2 > k {if rune(s[left]) == char1 {count1--} else if rune(s[left]) == char2 {count2--}left++total--}if total > maxLen {maxLen = total}}}}// 处理单一字母的情况for _, char1 := range chars {left, count, total := 0, 0, 0for right := 0; right < n; right++ {total++if rune(s[right]) == char1 {count++}for total-count > k {if rune(s[left]) == char1 {count--}left++total--}if total > maxLen {maxLen = total}}}return maxLen
}func main() {testCases := []struct {n intk ints string}{{6, 1, "ABCBAD"},{5, 1, "AEABD"},{8, 2, "AAAABBCD"},}for _, tc := range testCases {fmt.Println(solution(tc.n, tc.k, tc.s))}
}
def solution(n, k, s):if n <= 2:return nmax_len = 0# 获取唯一字符集合chars = set(s)# 枚举两种字母组合for char1 in chars:for char2 in chars:if char1 == char2:continueleft = 0count1 = 0  # char1 的数量count2 = 0  # char2 的数量total = 0   # 窗口总长度for right in range(n):total += 1if s[right] == char1:count1 += 1elif s[right] == char2:count2 += 1# 缩小窗口直到修改次数 <= kwhile total - count1 - count2 > k:if s[left] == char1:count1 -= 1elif s[left] == char2:count2 -= 1left += 1total -= 1max_len = max(max_len, total)# 处理单一字母的情况for char1 in chars:left = 0count = 0total = 0for right in range(n):total += 1if s[right] == char1:count += 1while total - count > k:if s[left] == char1:count -= 1left += 1total -= 1max_len = max(max_len, total)return max_len# 测试代码
if __name__ == "__main__":test_cases = [(6, 1, "ABCBAD"),(5, 1, "AEABD"),(8, 2, "AAAABBCD"),]for n, k, s in test_cases:print(solution(n, k, s))

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

相关文章:

  • phpcms手机网站南宁seo排名收费
  • 河南省住房城乡和建设厅网站首页阿里指数网站
  • 做电影网站的程序利尔化学股票股吧
  • 安卓做网站青岛网站建设与设计制作
  • 建设部网站监理工程师百度开放云平台
  • 云南网站建设公司有哪些百度快照怎么优化排名
  • 做读书网站的前景电商运营方案计划书
  • 怎样做3d动画短视频网站app平台搭建需要多少钱
  • 重庆购务网站建设数据分析网站
  • 网站空间邮箱每年要续费吗太原seo排名优化公司
  • 帮人做网站怎么收费网页设计与制作案例教程
  • 我想弄个自己的卖货网站怎样做长沙官网seo
  • 帮做论文网站吗百度第三季度财报2022
  • WordPress外链方法seo推广优化培训
  • app 网站可以做的免费推广广告推广有哪些平台
  • 企业网站 响应式工具大全
  • 网站别人帮做的要注意什么手续ui设计公司
  • 网站做弹窗广告吗模板免费网站建设
  • 网页浏览考拉seo
  • 商洛网站设计各大网站的网址
  • 展示型网站设计今日国内新闻
  • 北京建设网站 公司百度怎么注册自己的店铺
  • 医院网站建设方案策划书创建网址链接
  • 公司网站模板凡建站温州高端网站建设
  • limesurvey wordpressaso优化贴吧
  • 用easyui皮肤做漂亮的网站无锡百度正规公司
  • 企业可以做哪些网站nba最新排行榜
  • 如何给网站更换域名企业seo排名费用报价
  • 万云网络网站苏州seo关键词优化方法
  • 怎么更改网站关键词兰州搜索引擎优化