在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/人工智能  C  C++/ 請(qǐng)教一道算法題

請(qǐng)教一道算法題

第五題 判斷是否字符串一樣 里面有兩個(gè)特殊字符* 和?, 例如用 ma?k 匹配 mark 就輸出yes (?表示可以表示任意一個(gè)字母), ma* 匹配 mark 也輸出yes(*表示可以表示多于一個(gè)字符)

回答
編輯回答
憶往昔

這是要實(shí)現(xiàn)正則表達(dá)式的部分匹配功能。如果只是要代碼可以搜索下相關(guān)提供的函數(shù)。
自己實(shí)現(xiàn)的話可以用遞歸,一個(gè)指向目標(biāo)串,一個(gè)指向匹配串,依次同時(shí)加1,或單向加1,一直到失敗或匹配完成為止。有點(diǎn)類似kmp或者a*的方式吧。

2017年6月22日 15:18
編輯回答
哎呦喂
int main()
{
    string text1="";
    while(cin>>text1)
    {
        string text2="";
        cin>>text2;
        
        bool match = true;
        for(int i =0; i < text1.size(); ++i)
        {
            if(text1[i] == '*' || text1[i] == '?')
                continue;
            else if(text1[i] != text2[i])
            {
                match = false;
                break;
            }
        }
        
        cout<< ((match==true)?"yes":"no")<<endl;
    }
    system("pause");
    return 0;
}

不懂是不是這樣,希望可以幫助到你。
我用while循環(huán)來連續(xù)輸入字符串,因?yàn)槲覒械妹枯斎胍淮谓Y(jié)束程序后又得開啟程序多一次。

2018年3月17日 19:07