题解 | #第K小子串#

第K小子串

http://www.nowcoder.com/practice/c59d9690061e448fb8ec7d744c20ebff

  1. 使用set迭代是一种不错的方式。最优效率的方式,其他看注释。
#include<bits/stdc++.h>
using namespace std;

int main(){

    string s;
    int k;

    cin>>s>>k;

    set<string> result;//在该容器中本身就是有序的,就是字典序
    int n = s.size();
    string temp;
    for(int i = 0; i< n;i++){
        temp.clear();
        for(int j = i; j< n;j++){
            temp.push_back(s[j]);//字符串也可以压栈构建

            if(result.size()==k){//该轮在往后走已经超出最小字符串了,因为后面字符串肯定还会更长
                if (temp>=*(--result.end())){
                    break;
                }
                //如果不进入,就证明还在前面。
            }

            result.insert(temp);//插入结果。
            //最多存k个
            if(result.size()>k) result.erase(--result.end());
        }
    }


    cout<<*(--result.end())<<endl;

    return 0;
}
大厂笔试题题解 文章被收录于专栏

主要是公司笔试题得一些总结

全部评论

相关推荐

不愿透露姓名的神秘牛友
06-27 20:15
还能挽救吗?找同学帮忙看了一下&nbsp;字节怎么能如此对我
牛客26396789...:你这是严重红线,被发现你自己永远进不去,你那个同学直接走人,你还敢宣扬
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
昨天 18:22
投了几百份简历,专业和方向完全对口,都已读不回。尝试改了一下学校,果然有奇效。
steelhead:这不是很正常嘛,BOSS好的是即便是你学院本可能都会和聊几句,牛客上学院本机会很少了
点赞 评论 收藏
分享
06-04 09:27
门头沟学院 Java
点赞 评论 收藏
分享
07-02 18:09
门头沟学院 Java
苍穹外卖和谷粒商城这俩是不是烂大街了,还能做吗?
想去重庆的鸽子在吐槽:你不如把这俩做完自己搞明白再优化点再来问 何必贩卖焦虑
点赞 评论 收藏
分享
评论
2
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务