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;
    }
  • 相关阅读:
    react-webpack
    react
    重置手机过程
    运用 Node-RED 开发 LoRa 应用
    IBM Node-RED 安装与使用教程
    Node-RED 入门教程:简介
    Thingsboard 3.0 修改 Title、默认语言、主题颜色
    Thingsboard 3.0 通过 tb-gateway 网关接入 MQTT 设备教程
    Thingsboard 入门学习笔记:属性
    ThingsBoard 3.0 版本发布
  • 原文地址:https://www.cnblogs.com/FEIIEF/p/12700076.html
Copyright © 2011-2022 走看看