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

宝安网站建设企业网站的作用和意义

宝安网站建设,企业网站的作用和意义,php做的购物网站系统下载,河南能源企业网站建设🍭 大家好这里是清隆学长 ,一枚热爱算法的程序员 ✨ 本系列打算持续跟新华为OD-C/D卷的三语言AC题解 💻 ACM银牌🥈| 多次AK大厂笔试 | 编程一对一辅导 👏 感谢大家的订阅➕ 和 喜欢💗 &#x1f…

🍭 大家好这里是清隆学长 ,一枚热爱算法的程序员

✨ 本系列打算持续跟新华为OD-C/D卷的三语言AC题解

💻 ACM银牌🥈| 多次AK大厂笔试 | 编程一对一辅导

👏 感谢大家的订阅➕ 和 喜欢💗

📎在线评测链接

https://app5938.acapp.acwing.com.cn/contest/2/problem/OD1065
🌍 评测功能需要 ⇒ 订阅专栏 ⇐ 后私信联系清隆解锁~

🍓OJ题目截图

在这里插入图片描述

文章目录

    • 📎在线评测链接
    • 🍓OJ题目截图
    • 🏠 连续字母长度
      • 问题描述
      • 输入格式
      • 输出格式
      • 样例输入
      • 样例输出
      • 样例解释
      • 数据范围
      • 题解
      • 参考代码

🏠 连续字母长度

问题描述

K小姐有一个只包含大写字母的字符串,她想知道在所有包含同一字母的子串中,长度第 k k k 大的子串的长度是多少。注意,对于相同字母,只考虑最长的那个子串。

输入格式

第一行输入一个字符串 s s s,字符串长度满足 1 < ∣ s ∣ ≤ 1 0 5 1 < |s| \le 10^5 1<s105,且只包含大写字母。
第二行输入一个整数 k k k,表示要求的子串长度的排名。

输出格式

输出一个整数,表示第 k k k 长的子串的长度。如果不存在第 k k k 长的子串,则输出 − 1 -1 1

样例输入

AAAAHHHBBCDHHHH
3

样例输出

2

样例解释

在给定的样例中,同一字母连续出现次数最多的是 A A A H H H,均为 4 4 4 次。第二多的是 H H H,有 3 3 3 次连续出现,但由于 H H H 已经有了更长的子串,因此不予考虑。下一个最长的子串是 B B BB BB,长度为 2 2 2。因此,最终答案为 2 2 2

数据范围

1 < ∣ s ∣ ≤ 1 0 5 1 < |s| \le 10^5 1<s105
1 ≤ k ≤ 26 1 \le k \le 26 1k26

题解

本题可以通过统计每个字母出现的最长连续子串的长度,然后对这些长度进行排序来解决。具体步骤如下:

  1. 遍历字符串 s s s,统计每个字母出现的最长连续子串的长度,并用一个长度为 26 26 26 的数组 l e n len len 来存储,其中 l e n [ i ] len[i] len[i] 表示字母 i i i 出现的最长连续子串的长度。
  2. 对数组 l e n len len 进行降序排序。
  3. 判断排序后的数组 l e n len len 中第 k − 1 k-1 k1 个元素(下标从 0 0 0 开始)是否为 0 0 0,如果为 0 0 0,说明不存在第 k k k 长的子串,输出 − 1 -1 1;否则,输出 l e n [ k − 1 ] len[k-1] len[k1] 即可。

时间复杂度: O ( n log ⁡ n ) O(n \log n) O(nlogn),其中 n n n 为字符串 s s s 的长度。
空间复杂度: O ( 1 ) O(1) O(1)

参考代码

  • Python
def solve(s, k):n = len(s)len_arr = [0] * 26i = 0while i < n:j = iwhile j < n and s[j] == s[i]:j += 1c = ord(s[i]) - ord('A')len_arr[c] = max(len_arr[c], j - i)i = jlen_arr.sort(reverse=True)return len_arr[k - 1] if len_arr[k - 1] > 0 else -1s = input().strip()
k = int(input())
print(solve(s, k))
  • Java
import java.util.Arrays;
import java.util.Scanner;public class Main {public static int solve(String s, int k) {int n = s.length();int[] lenArr = new int[26];int i = 0;while (i < n) {int j = i;while (j < n && s.charAt(j) == s.charAt(i)) {j++;}int c = s.charAt(i) - 'A';lenArr[c] = Math.max(lenArr[c], j - i);i = j;}Arrays.sort(lenArr);return lenArr[25 - k + 1] > 0 ? lenArr[25 - k + 1] : -1;}public static void main(String[] args) {Scanner scanner = new Scanner(System.in);String s = scanner.nextLine();int k = scanner.nextInt();System.out.println(solve(s, k));}
}
  • Cpp
#include <iostream>
#include <string>
#include <algorithm>using namespace std;int solve(string s, int k) {int n = s.length();int lenArr[26] = {0};int i = 0;while (i < n) {int j = i;while (j < n && s[j] == s[i]) {j++;}int c = s[i] - 'A';lenArr[c] = max(lenArr[c], j - i);i = j;}sort(lenArr, lenArr + 26, greater<int>());return lenArr[k - 1] > 0 ? lenArr[k - 1] : -1;
}int main() {string s;int k;cin >> s >> k;cout << solve(s, k) << endl;return 0;
}
http://www.yayakq.cn/news/277461/

相关文章:

  • 中国化工网网站建设建议如何开发wordpress
  • 怎么不花钱建立网站百度seo免费推广教程
  • 网站开发技术都有哪些天元建设集团有限公司朱华
  • wordpress 核心文件海淀区seo搜索引擎
  • 国内旅游网站排名制作小程序的公司
  • 丹灶网站建设案例禅城网站开发
  • 做产品表情的网站seo的培训课程
  • 手机做网站知乎松江做网站费用
  • 哪个网站专门做游戏脚本网站开发概要设计模板
  • 仿做网站国际十大市场营销公司
  • 伊春网站建设公司wap网站生成
  • 临沂网站制作建设淘客网站怎么做
  • 安徽建设银行官方网站临沂网站关键字优化
  • 连江福州网站建设做qq图片的网站有哪些
  • 司法局网站建设方案网站建设cms
  • 做ppt比较好的网站有哪些网站设计制作的连接方式
  • 网站素材设计免费打广告的平台app
  • 北京移动网站建设公司兴义网站制作
  • 网站着陆页怎么做百度广告管家
  • 小猫mip网站建设芜湖市建设路小学网站
  • 哈尔滨寸金网站建设价格网站设计制作一般多少钱
  • 网站做后怎么可以在百度搜索到asp网站源码安装流程
  • 本地服务器怎么做网站小程序制作问卷调查
  • 课程网站建设中容易出现的问题保护动物网站建设策划书
  • 企业网站建设采购销售推广方案
  • 珠海微信网站开发网站建站的书籍
  • 建设网站机构陕西手机网站建设公司哪家好
  • 芜湖网站设计本地网站搭建软件
  • 古城做网站的公司网站模板 古典
  • 长沙市建设厅网站上海做网站优化公司