题解 | #LUCKY STRING#

LUCKY STRING

https://www.nowcoder.com/practice/9ef1046e746248fe93751e37126bb9e0

朴素的思路,用unordered_set去重。代码如下:
#include "bits/stdc++.h"

using namespace std;

int main(){
    string s;
    cin>>s;
    
    unordered_set<string> res; //记录答案并去掉重复答案
    
    for(int i=0;i<s.length();++i){
        int a = 1, b = 1, n = 1, n_pre = 1;
        string tmp;
        //用set存储string,计数时去重
        unordered_set<char> st;
        for(int j=i;j<s.length();++j){
            //以j为起点,遍历后续所有元素
            tmp += s[j];
            st.insert(s[j]);
        
            //如果st中数量 == n,st.size() == n_pre说明加了一个新元素,不重复的元素没变。
            if(st.size() == n || st.size() == n_pre){
                if(st.size() == n){
                    n_pre = n;
                    n = a + b;
                    a = b;
                    b = n;
                    res.insert(tmp);
                }else{
                    res.insert(tmp);
                }
            } 
        }
    }
       
    vector<string> vec;
    for(auto ch : res){
        vec.push_back(ch);
    }
    
    //按照字典序排序
    sort(vec.begin(), vec.end());
    
    for(string str : vec){
        cout<<str<<endl;
    }
    
    return 0;
}

全部评论

相关推荐

看到这个内容真是闹麻了。。。。。。现在有了AI以后很多人面试都会作弊吗?&nbsp;那对老老实实面试的人岂不是不公平....
程序员牛肉:公平那是对小孩子讲的童话故事,成年人的世界只有能不能接受失败的后果。 你要是能接受面试作弊被发现之后多家公司联合永久拉黑的后果,你就搞。
你找工作的时候用AI吗?
点赞 评论 收藏
分享
06-20 21:22
已编辑
门头沟学院 Java
纯真的河老师在喝茶:答应了就跑啊,实习随便跑啊,别被pua了,md就是找个廉价劳动力,还平稳过度正式工,到时候跟你说没转正
点赞 评论 收藏
分享
06-12 16:00
天津大学 Java
牛客30236098...:腾讯坏事做尽,终面挂是最破防的 上次被挂了后我连简历都不刷了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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