首页 > 编程语言 >算法题-第K个小子串

算法题-第K个小子串

时间:2023-04-06 23:55:41浏览次数:53  
标签:输出 int 字母 算法 str 字符串 小子 字典

第K小子串

输入一个字符串 s,s 由小写英文字母组成,保证 s 长度小于等于 5000 并且大于等于 1。在 s 的所有不同的子串中,输出字典序第 k 小的字符串。

字符串中任意个连续的字符组成的子序列称为该字符串的子串。

字母序表示英文单词在字典中的先后顺序,即先比较第一个字母,若第一个字母相同,则比较第二个字母的字典序,依次类推,则可比较出该字符串的字典序大小。

输入:

第一行输出一个字符串 s,保证 s 长度小于等于 5000 大于等于 1。
第二行一个整数 k (1<= k <= 5),保证 s 不同子串个数大于等于 k。

输出:

输出一个字符串表示答案。

这道题数据量不大,直接暴力枚举,利用set本身的有序性

#include <iostream>
#include <set>


using namespace std;


int main() {
    string str;
    cin >> str;
    int k;
    cin >> k;
    set<string> s;
    for (int i = 0; i < str.size(); i++) {
        for (int j = i; j < str.size(); j++) {
            if (j - i + 1 > k) {
                break;
            }
            string t = str.substr(i, j - i + 1);
//            cout << t << endl;
            s.insert(t);
            if (s.size() > k) {
                s.erase(--s.end());
            }
        }
    }
    cout << *(--s.end()) << endl;
}

标签:输出,int,字母,算法,str,字符串,小子,字典
From: https://www.cnblogs.com/yumingkuan/p/17294646.html

相关文章

  • 内存淘汰策略|页面置换算法对比总结
    在学习【操作系统】【MySQL】【Redis】后,发现其都有一些缓存淘汰的策略,因此一篇小文章总结一下。目前还没着笔,初略一想MySQL和操作系统应该都是使用的年轻代和老生代的改进策略,而Redis使用的是随机抽的策略。MySQLMySQL中存在一个内存缓存池,BufferPool。里面存在着控制块和......
  • Set Cover问题的贪心近似算法分析
    问题描述全集\(U=\{e_1,e_2,...,e_n\}\)被划分为一系列的子集\(S=\{S_1,S_2,...,S_k\}\)。且存在一个cost函数\(c:S\rightarrow\mathbb{R}^+\)。目标是挑选子集使其覆盖所有全集\(U\)的元素同时cost最小问题算法该问题是经典的NPC问题。给出其中一......
  • 算法题-朋友圈-并查集
    朋友圈现在有105个用户,编号为1-105,现在已知有m对关系,每一对关系给你两个数x和y,代表编号为x的用户和编号为y的用户是在一个圈子中,例如:A和B在一个圈子中,B和C在一个圈子中,那么A,B,C就在一个圈子中。现在想知道最多的一个圈子内有多少个用户。数据范围:......
  • 什么是贪心算法
    贪心算法基本思想:顾名思义,贪心算法总是作出在当前看来最好的选择。也就是说贪心算法并不从整体最优考虑,它所作出的选择只是在某种意义上的局部最优选择。当然,希望贪心算法得到的最终结果也是整体最优的。虽然贪心算法不能对所有问题都得到整体最优解,但对许多问题它能产生整体最优......
  • 蚁群算法 Dijkstra算法 遗传算法 人工势场法实现二维 三维空间路径规划
    【改进蚁群算法】蚁群算法Dijkstra算法遗传算法人工势场法实现二维三维空间路径规划本程序为改进蚁群算法+Dijkstra算法+MAKLINK图理论实现的二维空间路径规划算法实现:1)基于MAKLINK图理论生成地图,并对可行点进行划分;2)用Dijkstra算法实现次优路径的寻找;3)在Dijkstra算法......
  • 欧几里得算法
    欧几里得算法(Euclid)最大公约数\(gcd(a,b)\)intgcd(inta,intb){while(b){swap(a,b);b%=a;}returna;}//---or---intgcd(inta,intb){return(b==0?a:gcd(b,a%b));}最小公倍数\(lcm(a,b)\)intlcm(inta,intb){......
  • 异步电机无传感器矢量控制的算法,matlab,仿真模型,采用转子磁链定向控制算法
    异步电机无传感器矢量控制的算法,matlab,仿真模型,采用转子磁链定向控制算法,转子磁链观测器采用电压模型+电流模型补偿算法。YID:8688667414516678......
  • 灰狼优化算法GWO优化SVM支持向量机惩罚参数c和核函数参数g
    灰狼优化算法GWO优化SVM支持向量机惩罚参数c和核函数参数g,有例子,易上手,简单粗暴,替换数据即可,分类问题。仅适应于windows系统YID:6999630206572076......
  • 粒子群算法PSO优化LSSVM最小二乘支持向量机惩罚参数c和核函数参数g
    粒子群算法PSO优化LSSVM最小二乘支持向量机惩罚参数c和核函数参数g,用于回归预测,有例子,易上手,简单粗暴,直接替换数据即可。仅适应于windows系统。质量保证,完美运行。        本人在读博士研究生,已发表多篇sci,非网络上的学习代码,不存在可比性。ID:6999630547781158......
  • 巷道堆垛式立体车库调度算法研究
    在国家质检总局发布的《特种设备目录》中,立体车库分为九大类,分别是:升降横移简易升降垂直循环水平循环多层循环平面移动巷道堆垛垂直升降汽车专用升降影响立体车库运营服务效率主要是控制系统软件部分的存取车调度策略算法,而用户排队时间与车库服务效率息息相关 巷......