華為程式設計大賽 菜鳥學演算法

2021-06-09 11:34:54 字數 1134 閱讀 8688

題目是來自華為程式設計大賽 

問題描述 

判斷包含萬用字元的匹配字串是否完全匹配輸入的字串, 匹配字串中包含的 萬用字元僅有『*』和『?』 ,且萬用字元不會連續出現 。 (要求完全匹配,而不是包 含)

其中,萬用字元『*』 :代替 0 個或多個字元,萬用字元『』 :代替乙個字元 要求實現函式 

int getmatchsta (const char *arrstr, const char *keystr) 

【輸入】 arrstr: 給定的字串 keystr: 包含萬用字元的匹配字串 

【輸出】無 

【返回】是否匹配,匹配返回 1,不匹配返回 0 

示例 輸入: abcdefg」, 「a*'」 」 返回:1 

輸入: 「tommababcabc」 , tom*ab*abc 返回:1(看網上的題目是tom*ab*abc=>tm*ab*abc,打肉眼分析發現 這個明顯不匹配

我的想法是:

使用兩個指標,每個字串使用乙個;判斷keystr當前字元:

如果為』* 『,1 為最後乙個字元,返回 為1 通過;

2 不為最後乙個,取出下乙個字元a,arrstr跳轉到下乙個為a的位置,從新匹配。如果沒有找到返回 0;

如果為『?』,都像後移。

default :比較指向的字元。

下面是我的**:

#define anyone '*'

#define one '?'

#define maxnum 100

int getmatchsta (const char *arrstr, const char *keystr)

}break;

case one: //move to next positoin 

***_ks++;

***_as++;

break;

default:

if(temp==****_as)

else

return 0;    //match fail 

break;}}

return ****_as==null&&****_ks==null?1:0;

}int main(int argc, char* argv) 

大家幫我看看,有問題沒有。

謝謝哦。 

華為程式設計大賽

本試題採用自動測試用例進行評分,測試用例不對考生公開,凡不滿足提交要求導致不能執行或用例不通過,不予評分 1 排序演算法 20分 l 問題描述 將給定的無序整數陣列降序排列後輸出,輸入的無序陣列長度為n,型別為unsigned int l 要求實現函式 void dscsort const int ...

華為程式設計大賽決賽題

題目 俄羅斯方塊覆蓋。給定 乙個21 21的格仔矩陣,從1到441編號。輸入是乙個檔案testin.txt,裡面有4個數字,每乙個數字代表陣列下標,陣列元素值為1,表示障礙。空著的格仔用0表示。這四個數字代表的圖形只能是這個中的一種!也就是說。矩陣中4個1勾勒出個圖形只能是這兩種樣子。要求是用俄羅斯...

2017華為程式設計大賽總結

華為研發部門,每年都會在部門內部舉辦一屆程式設計大賽。旨在讓開發人員在工作之餘,通過遊戲程式設計的切磋,提高技術和協作能力。在入職華為的第四個年頭,我終於如願拿到了部門程式設計大賽的冠軍。之前的每一年也都會參加,其中兩次抱大腿拿到了亞軍,一次因為太忙棄權了。這一屆終於帶隊拿到了冠軍,了卻了一樁心事。...