題目是來自華為程式設計大賽
問題描述
判斷包含萬用字元的匹配字串是否完全匹配輸入的字串, 匹配字串中包含的 萬用字元僅有『*』和『?』 ,且萬用字元不會連續出現 。 (要求完全匹配,而不是包 含)
其中,萬用字元『*』 :代替 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華為程式設計大賽總結
華為研發部門,每年都會在部門內部舉辦一屆程式設計大賽。旨在讓開發人員在工作之餘,通過遊戲程式設計的切磋,提高技術和協作能力。在入職華為的第四個年頭,我終於如願拿到了部門程式設計大賽的冠軍。之前的每一年也都會參加,其中兩次抱大腿拿到了亞軍,一次因為太忙棄權了。這一屆終於帶隊拿到了冠軍,了卻了一樁心事。...