久久久精品一区ed2k-女人被男人叉到高潮的视频-中文字幕乱码一区久久麻豆樱花-俄罗斯熟妇真实视频

C++——電話(huà)號(hào)碼的字母組合問(wèn)題-創(chuàng)新互聯(lián)

文章目錄
  • 電話(huà)號(hào)碼的字母組合
    • 題目鏈接
    • 思路:
    • 代碼:
    • 調(diào)試演示

寧縣ssl適用于網(wǎng)站、小程序/APP、API接口等需要進(jìn)行數(shù)據(jù)傳輸應(yīng)用場(chǎng)景,ssl證書(shū)未來(lái)市場(chǎng)廣闊!成為創(chuàng)新互聯(lián)公司的ssl證書(shū)銷(xiāo)售渠道,可以享受市場(chǎng)價(jià)格4-6折優(yōu)惠!如果有意向歡迎電話(huà)聯(lián)系或者加微信:18982081108(備注:SSL證書(shū)合作)期待與您的合作!
電話(huà)號(hào)碼的字母組合 題目鏈接 思路:

首先使用string類(lèi)的數(shù)組存儲(chǔ)每個(gè)數(shù)字對(duì)應(yīng)的所有可能的字母,然后進(jìn)行回溯操作。

string arr[] = {"","","abc","def","ghi","jkl","mno","pqrs","tuv","wxyz" };

回溯過(guò)程中維護(hù)一個(gè)字符串,表示已有的字母排列(如果未遍歷完電話(huà)號(hào)碼的所有數(shù)字,則已有的字母排列是不完整的)。該字符串初始為空。每次取電話(huà)號(hào)碼的一位數(shù)字,從哈希表中獲得該數(shù)字對(duì)應(yīng)的所有可能的字母,并將其中的一個(gè)字母插入到已有的字母排列后面,然后繼續(xù)處理電話(huà)號(hào)碼的后一位數(shù)字,直到處理完電話(huà)號(hào)碼中的所有數(shù)字,即得到一個(gè)完整的字母排列。然后進(jìn)行回退操作,遍歷其余的字母排列。

回溯算法用于尋找所有的可行解,如果發(fā)現(xiàn)一個(gè)解不可行,則會(huì)舍棄不可行的解。在這道題中,由于每個(gè)數(shù)字對(duì)應(yīng)的每個(gè)字母都可能進(jìn)入字母組合,因此不存在不可行的解,直接窮舉所有的解即可。

但是思路易想,實(shí)現(xiàn)難,回溯我們這里就采用多路遞歸,比較難想的就是要考慮清楚遞歸的時(shí)候要傳什么變量去控制遞歸的深度,然后需要考慮是函數(shù)調(diào)用時(shí)是傳值?還是傳引用,下面代碼定義的vectorMyString;就是要存每一次拼接好的字符串就需要用傳引用調(diào)用,那么這里就還需要定義一個(gè)string類(lèi)型的combine;來(lái)完成一個(gè)拼接的功能,用范圍for去讓數(shù)字所代表的字符串逐個(gè)進(jìn)入遞歸函數(shù)中,用times控制遞歸次數(shù),這個(gè)次數(shù)times如果和digits.size()相等,那么就將拼接好的字符串尾插到combine中。

代碼:
class Solution {public:
    

    void Combine(vector&MyString, int times, string digits, string combine)
    {string arr[] = {"","","abc","def","ghi","jkl","mno","pqrs","tuv","wxyz" };

        if (times == digits.size())
        {MyString.push_back(combine);
            return;
        }

        for (auto ch : arr[digits[times] - '0'])
        {Combine(MyString, times + 1, digits, combine + ch);
        }
        
    }
    

    vectorletterCombinations(string digits) {

        vectorMyString;//最終組合好的vector
        
        if (digits.size() == 0)//當(dāng)這個(gè)字符串是空串的時(shí)候,直接返回就行
        {return MyString;
        }

        string combine;//靠他完成一個(gè)拼接的功能
        int times = 0;//控制遞歸次數(shù)
        
        Combine(MyString, times, digits, combine);//遞歸函數(shù)


        return MyString;


    }
};
調(diào)試演示

下面是當(dāng)digiets為字符串“2”時(shí)的調(diào)試演示。
在這里插入圖片描述


下面是當(dāng)digiets為字符串“23”時(shí)的調(diào)試演示。在這里插入圖片描述


好了今天的分享就到此為止了
最后:如果你覺(jué)得對(duì)你有用就一鍵三連吧,哪里有沒(méi)看懂的地方或者哪里有錯(cuò)誤可以在評(píng)論區(qū)留言歡迎批評(píng)指正,作者看到的話(huà)會(huì)第一時(shí)間回復(fù)。
end


你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機(jī)房具備T級(jí)流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級(jí)服務(wù)器適合批量采購(gòu),新人活動(dòng)首月15元起,快前往官網(wǎng)查看詳情吧

當(dāng)前名稱(chēng):C++——電話(huà)號(hào)碼的字母組合問(wèn)題-創(chuàng)新互聯(lián)
標(biāo)題來(lái)源:http://www.sd-ha.com/article2/dojgic.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供全網(wǎng)營(yíng)銷(xiāo)推廣、域名注冊(cè)動(dòng)態(tài)網(wǎng)站、網(wǎng)站策劃品牌網(wǎng)站制作、App設(shè)計(jì)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都網(wǎng)頁(yè)設(shè)計(jì)公司