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

19066 第K小子串

这个问题可以通过使用集合(set)和优先队列(priority_queue)来解决。我们首先遍历字符串的所有子串,然后将这些子串放入一个集合中,这样可以去除重复的子串。然后我们将集合中的子串放入一个优先队列中,优先队列的大小为k,这样我们可以保证优先队列中始终包含字典序最小的k个子串。最后,我们从优先队列中取出字典序第k小的子串。

以下是C++代码实现:

#include <iostream>
#include <set>
#include <queue>
#include <string>
using namespace std;int main() {string s;int k;cin >> s >> k;set<string> substrings;for (int i = 0; i < s.size(); i++) {for (int j = 1; j <= s.size() - i; j++) {substrings.insert(s.substr(i, j));}}priority_queue<string> pq;for (const string& str : substrings) {pq.push(str);if (pq.size() > k) {pq.pop();}}cout << pq.top() << endl;return 0;
}

在这段代码中,我们首先读取输入的字符串s和整数k,然后我们遍历s的所有子串,将这些子串放入一个集合中。然后我们将集合中的子串放入一个优先队列中,优先队列的大小为k。最后,我们从优先队列中取出字典序第k小的子串。

这段代码的时间复杂度是O(n^2 log n),其中n是字符串的长度。因为我们需要遍历所有的子串,这个操作的时间复杂度是O(n^2),然后我们需要将子串插入到集合和优先队列中,这个操作的时间复杂度是O(log n)。所以总的时间复杂度是O(n^2 log n)。

这段代码的空间复杂度是O(n^2),因为我们需要存储所有的子串。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 将后台传来的数据,转成easyui-tree所需格式
  • Map遍历 32
  • 家用仪器血压测量仪电子方案
  • Centos 8使用空磁盘扩展ext4文件类型根分区 (LVM)
  • 代码随想录算法训练营第十七天 | 654.最大二叉树, 617.合并二叉树 ,700.二叉搜索树中的搜索 , 98.验证二叉搜索树
  • 在 Windows 10 系统上部署 Medusa
  • 检索增强生成RAG系列10--RAG的实际案例
  • Modbus 协议详解
  • 一款有趣的工具,锁定鼠标键盘,绿色免安装
  • 【Matplotlib】在 ax(Axes 对象)上使用 seaborn(简称 sns)绘图
  • Meta最新SAM2模型开源直接封神
  • 计算机技术基础 (bat 批处理)Note5
  • CSS平面转换-旋转
  • NumPy 基础教程
  • 普通人有必要学Python吗?学了之后能做什么?
  • 【每日笔记】【Go学习笔记】2019-01-10 codis proxy处理流程
  • android高仿小视频、应用锁、3种存储库、QQ小红点动画、仿支付宝图表等源码...
  • create-react-app项目添加less配置
  • CSS中外联样式表代表的含义
  • Java比较器对数组,集合排序
  • JS基础篇--通过JS生成由字母与数字组合的随机字符串
  • LeetCode541. Reverse String II -- 按步长反转字符串
  • python_bomb----数据类型总结
  • use Google search engine
  • vue2.0一起在懵逼的海洋里越陷越深(四)
  • vue的全局变量和全局拦截请求器
  • Work@Alibaba 阿里巴巴的企业应用构建之路
  • 诡异!React stopPropagation失灵
  • 记一次删除Git记录中的大文件的过程
  • 老板让我十分钟上手nx-admin
  • 前端知识点整理(待续)
  • 容器化应用: 在阿里云搭建多节点 Openshift 集群
  • 算法-插入排序
  • 一道闭包题引发的思考
  • 译自由幺半群
  • ​Linux·i2c驱动架构​
  • # 达梦数据库知识点
  • $$$$GB2312-80区位编码表$$$$
  • $分析了六十多年间100万字的政府工作报告,我看到了这样的变迁
  • (1/2)敏捷实践指南 Agile Practice Guide ([美] Project Management institute 著)
  • (HAL)STM32F103C6T8——软件模拟I2C驱动0.96寸OLED屏幕
  • (k8s)Kubernetes本地存储接入
  • (zt)最盛行的警世狂言(爆笑)
  • (办公)springboot配置aop处理请求.
  • (备忘)Java Map 遍历
  • (二)十分简易快速 自己训练样本 opencv级联lbp分类器 车牌识别
  • (翻译)Entity Framework技巧系列之七 - Tip 26 – 28
  • (介绍与使用)物联网NodeMCUESP8266(ESP-12F)连接新版onenet mqtt协议实现上传数据(温湿度)和下发指令(控制LED灯)
  • (四)linux文件内容查看
  • (一)kafka实战——kafka源码编译启动
  • (转)fock函数详解
  • (转)德国人的记事本
  • .NET框架设计—常被忽视的C#设计技巧
  • .Net语言中的StringBuilder:入门到精通
  • //TODO 注释的作用