欧美1区2区3区激情无套,两个女人互添下身视频在线观看,久久av无码精品人妻系列,久久精品噜噜噜成人,末发育娇小性色xxxx

題解 | #單雙難全#

單雙難全

http://www.fangfengwang8.cn/practice/9e1551271e074f3eb7e9232f6e7846a3

NC524 單雙難全
題解一:字典樹
題解思路: 構(gòu)建兩個(gè)字典樹,一個(gè)用字符串奇數(shù)位構(gòu)建,一個(gè)用字符串的全部字符創(chuàng)建一個(gè)字典樹
圖示字典樹:
圖片說(shuō)明
圖片說(shuō)明
復(fù)雜度分析:
時(shí)間復(fù)雜度: :建樹的時(shí)間復(fù)雜度由字符串長(zhǎng)度決定,查找前綴樹取決前綴長(zhǎng)度。 建樹需要遍歷s字符串?dāng)?shù)組中的每個(gè)字符串,查找需要遍歷t字符串?dāng)?shù)組中的每個(gè)字符串
空間復(fù)雜度: 空間復(fù)雜度最壞情況下是每個(gè)字符串都有26個(gè)英文字母

實(shí)現(xiàn)如下:

class Solution {
public:
    /**
     * 代碼中的類名、方法名、參數(shù)名已經(jīng)指定,請(qǐng)勿修改,直接返回方法規(guī)定的值即可
     *
     * 單雙難全
     * @param n int整型 字符串s的個(gè)數(shù)
     * @param s string字符串vector n個(gè)字符串s
     * @param m int整型 字符串t的個(gè)數(shù)
     * @param t string字符串vector m個(gè)字符串t
     * @return int整型vector
     */
    typedef struct tree{
        int count;
        struct tree* next[27];
        tree(int c=0,int en = 0):count(c){memset(next,0,sizeof(next));};
    }Tire;
    Tire* root_1 = new Tire();//奇數(shù)根節(jié)點(diǎn)
    Tire* root_2 = new Tire();
    //單數(shù)位構(gòu)建
    void insert_ji(string s){
        int len = s.size();
        Tire* t = root_1;
        for(int i  = 0;i<len;i+=2){
            if(t->next[s[i]-'a']==NULL) t->next[s[i]-'a'] = new Tire();
            t = t->next[s[i]-'a'];
            t->count++;  //表明該節(jié)點(diǎn)所關(guān)聯(lián)的單詞
        }
    }
    //整個(gè)字符串建立字典樹
    void insert(string s){
        int len = s.size();
        Tire* t = root_2;
        for(int i = 0;i<len;++i){
            if(t->next[s[i]-'a']==NULL) t->next[s[i]-'a'] = new Tire();
            t = t->next[s[i]-'a'];
            t->count++;
        }
    }
    //在完整字典樹中查找
   int search(string s){
       int len = s.size();
       Tire* t = root_2;
       for(int i = 0;i<len;++i){
           if(t->next[s[i]-'a'] == NULL) return 0;
           t = t->next[s[i]-'a'];
       }
       return t->count;
   }
    //在查找奇數(shù)位構(gòu)建字典樹查找
   int search_ji(string s){
       int len = s.size();
       Tire* t = root_1;
       for(int i = 0;i<len;i+=2){
           if(t->next[s[i]-'a']==NULL) return 0;
           t = t->next[s[i]-'a'];
       }
       return t->count;
   }
    vector<int> solve(int n, vector<string>& s, int m, vector<string>& t) {
        vector<int> ans;
        for(auto it:s) {insert_ji(it); insert(it);}
        for(auto it:t) {
            if(it.size()!=1)
                ans.emplace_back(search_ji(it)-search(it));
            else ans.emplace_back(search_ji(it));
        }
        return ans;
    }
};

題解二:暴力
題解思路: 遍歷兩個(gè)字符串?dāng)?shù)組進(jìn)行比較,判斷是否是單匹配串,同時(shí)還需要判斷是否是雙匹配串
復(fù)雜度分析:
時(shí)間復(fù)雜度:,需要遍歷兩個(gè)字符串?dāng)?shù)組進(jìn)行字符串的比較。
空間復(fù)雜度:,沒有申請(qǐng)額外的空間
實(shí)現(xiàn)如下:

class Solution {
public:
    vector<int> solve(int n, vector<string>& s, int m, vector<string>& t) {
        vector<int> res(m, 0);
        for(int i = 0; i < m; i++){//遍歷字符串?dāng)?shù)組t
            for(int j = 0; j < n; j++){ //遍歷字符串?dāng)?shù)組s
                bool flag = true;
                if(t[i].length() > s[j].length())
                    continue;
                else{
                    for(int k = 0; k < t[i].length(); k++){ //查看是否是單匹配串
                        if(k % 2 == 0){ //檢查奇數(shù)是否相同
                            if(t[i][k] == s[j][k])
                                continue;
                            else{
                                flag = false;
                                break;
                            }
                        }
                    }
                    if(flag){ //已經(jīng)是單匹配串
                        for(int k = 0; k <t[i].length(); k++){ //檢查是否是雙匹配
                            if(k % 2 == 1){
                                if(t[i][k] == s[j][k])
                                    continue;
                                else{
                                    flag = false;
                                    break;
                                }
                            }
                        }
                        if(!flag || t[i].length() == 1) //當(dāng)是單匹配不是雙匹配或者t只有一個(gè)數(shù)時(shí)
                            res[i]++;
                    }
                }
            }
        }
        return res;
    }
};
牛客網(wǎng)編程題題解 文章被收錄于專欄

本專欄記錄在牛客網(wǎng)上AC的每一題,寫下題解。 未來(lái)2年完成2000編程題的題解。 2021.12.29更新,最進(jìn)準(zhǔn)備畢設(shè),斷更了,會(huì)盡快做完畢設(shè),繼續(xù)做這一件事情

全部評(píng)論

相關(guān)推薦

睡姿決定發(fā)型丫:本碩末9也是0offer,簡(jiǎn)歷掛了挺多,只有淘天 美團(tuán) 中興給了面試機(jī)會(huì),淘天二面掛,美團(tuán)一面kpi面,中興一面感覺也大概率kpi(雖然國(guó)企,但一面0技術(shù)純聊天有點(diǎn)離譜吧)
點(diǎn)贊 評(píng)論 收藏
分享
求面試求offer啊啊啊?。?/span>把華北改為華南再試一試,應(yīng)該就沒啥問(wèn)題了。改完可能都不用投,別人主動(dòng)聯(lián)系了。
點(diǎn)贊 評(píng)論 收藏
分享
評(píng)論
1
1
分享

創(chuàng)作者周榜

更多
正在熱議
更多
# 牛油的搬磚plog #
26476次瀏覽 114人參與
# 大學(xué)最后一個(gè)寒假,我想…… #
29038次瀏覽 274人參與
# 一人一個(gè)landing小技巧 #
23713次瀏覽 459人參與
# 運(yùn)營(yíng)每日一題 #
67679次瀏覽 649人參與
# 查收我的offer競(jìng)爭(zhēng)力報(bào)告 #
176627次瀏覽 1066人參與
# 面試被問(wèn)第一學(xué)歷差時(shí)該怎么回答 #
122668次瀏覽 765人參與
# 電網(wǎng)筆面經(jīng)互助 #
31707次瀏覽 317人參與
# 為什么那么多公司毀約 #
163548次瀏覽 1223人參與
# 我在牛愛網(wǎng)找對(duì)象 #
178491次瀏覽 1339人參與
# 520告白墻 #
18767次瀏覽 325人參與
# 找工作的破防時(shí)刻 #
25676次瀏覽 385人參與
# 實(shí)習(xí)學(xué)不到東西怎么辦? #
203871次瀏覽 2113人參與
# 2023屆毀約公司名單 #
190446次瀏覽 938人參與
# 通信硬件知識(shí)分享 #
25608次瀏覽 460人參與
# 實(shí)習(xí)/項(xiàng)目/競(jìng)賽獎(jiǎng)項(xiàng),哪個(gè)對(duì)找工作更重要? #
80385次瀏覽 1102人參與
# 騰訊音樂(lè)求職進(jìn)展匯總 #
86340次瀏覽 485人參與
# 25屆秋招公司紅黑榜 #
259542次瀏覽 1089人參與
# 如果公司降薪,你會(huì)跳槽嗎? #
65726次瀏覽 515人參與
# 我想象的實(shí)習(xí)vs現(xiàn)實(shí)的實(shí)習(xí) #
277675次瀏覽 2207人參與
# 我發(fā)現(xiàn)一個(gè)規(guī)律 #
3310次瀏覽 31人參與
??途W(wǎng)
牛客企業(yè)服務(wù)