zoukankan      html  css  js  c++  java
  • 1077 Kuchiguse

    link

    常规写法:

    #include <iostream>
    #include <vector>
    #include <cstring>
    #include <stack>
    #include <unordered_set>
    #include <queue>
    #include <cmath>
    #define LL long long
    using namespace std;
    
    int main(){
        int N;
        cin>>N;
        getchar();
        string s;
        getline(cin,s);
        int prop=s.size();
        for(int i=2;i<=N;i++){
            string s1;
            getline(cin,s1);
            prop=min(prop,(int)s1.size());
            for(int len=prop;len>=0;len--){
                if(s.substr(s.size()-len,len)==s1.substr(s1.size()-len,len)){
                    prop=len; 
                    break;
                }
            }
        }
        if(prop>0) cout<<s.substr(s.size()-prop,prop);
        else cout<<"nai";
        return 0;
    }

    用Trie:

    #include <iostream>
    #include <vector>
    #include <cstring>
    #include <stack>
    #include <unordered_set>
    #include <queue>
    #include <cmath>
    #include <unordered_map>
    #include <algorithm>
    #define LL long long
    using namespace std;
    
    struct Trie{
        unordered_map<char,Trie*> children;
    };
    Trie* root;
    
    void buildTrie(string s){
        Trie* cur=root;
        for(char c:s){
            if(cur->children.find(c)==cur->children.end()){
                cur->children[c]=new Trie();
            }
            cur=cur->children[c];
        }
    }
    
    int main(){
        int N;
        cin>>N;
        getchar();
        string s;
        root=new Trie();
        for(int i=1;i<=N;i++){
            getline(cin,s);
            reverse(s.begin(),s.end());
            buildTrie(s);
        }
        int res=0;
        Trie* cur=root;
        while(true){
            if(cur->children.size()!=1) break;
            res++;
            auto iter=cur->children.begin();
            cur=iter->second;
        }
        if(res==0) printf("nai");
        else {
            reverse(s.begin(),s.end());
            cout<<s.substr(s.size()-res,res);
        }
        return 0;
    }
  • 相关阅读:
    Eureka与Zookeeper的区别
    Eureka的集群配置
    Rest微服务案例
    Eureka概述
    SpringCloud与Dubbo区别对比
    各种微服务框架对比
    ElasticSearch(九):elasticsearch-head插件安装
    ElasticSearch(八):elasticsearch.yml配置说明
    Docker(2):使用Dockerfile创建支持SSH服务的镜像
    CentOS 7 安装Kubernetes(单机版)
  • 原文地址:https://www.cnblogs.com/FEIIEF/p/12700076.html
Copyright © 2011-2022 走看看