北郵複試機試之打牌

2021-10-04 03:01:22 字數 997 閱讀 1756

牌只有1到9,手裡拿著已經排好序的牌a,對方出牌b,用程式判斷手中牌是否能夠壓過對方出牌。  規則:出牌牌型有5種   [1]一張 如4 則5...9可壓過 [2]兩張 如44 則55,66,77,...,99可壓過 [3]三張 如444 規則如[2] [4]四張 如4444 規則如[2] [5]五張 牌型只有12345 23456 34567 45678 56789五個,後面的比前面的均大。

輸入有多組資料。

每組輸入兩個字串(字串大小不超過100)a,b。a字串代表手中牌,b字串代表出的牌。

壓過輸出yes 否則no。
示例1

12233445566677

33

yes
題目涉及五類輸入情況,可以使用switch case進行五模擬較,每模擬較均是通過對兩個字串中數字的比較,這裡可以設定乙個count陣列,用於計數每個數出現的次數,並設定乙個標記陣列,用於表明該數是否出現過,因此每次比較就只需要將這兩個陣列對應a[j]-'0'出的數值與b陣列中的資料進行比較。

#include #includeusing namespace std;

int main()

for(int i=0;i=1&&flag[a[j]-'0']==true)

//表示有滿足的牌

f=1;

}}break;

case 2:

for(int i=0;i<10;i++)

}break;

case 3:

for(int i=0;i<10;i++)

}break;

case 4:

for(int i=0;i<10;i++)

}break;

case 5:

for(int i=1;i<=5;i++){

for(int j=0;j還有一點需要注意的是,a,b兩個字串使用的是char型陣列,長度的獲取是通過 strlen(a) 獲得,而不能通過a.size() 或者a.length()獲得 

北郵複試機試之找最小數

第一行輸入乙個數n,1 n 1000,下面輸入n行資料,每一行有兩個數,分別是x y。輸出一組x y,該組資料是所有資料中x最小,且在x相等的情況下y最小的。輸入有多組資料。每組輸入n,然後輸入n個整數對。輸出最小的整數對。示例1 5 3 3 2 2 5 5 2 1 3 62 1思路簡單,方法一 兩...

北郵OJ打牌

牌只有1到9,手裡拿著已經排好序的牌a,對方出牌b,用程式判斷手中牌是否能夠壓過對方出牌。規則 出牌牌型有5種 1 一張 如4 則5.9可壓過 2 兩張 如44 則55,66,77,99可壓過 3 三張 如444 規則如 2 4 四張 如4444 規則如 2 5 五張 牌型只有12345 23456...

2010北郵複試網研上機題 打牌

最近利用空餘時間也練習了將近乙個月的acm,重新回來看這篇當時的部落格,發現 錯誤百出,在九度 上重新 了這道題,上 給大家看 牌只有1到9,手裡拿著已經排好序的牌a,對方出牌b,用程式判斷手中牌是否能夠壓過對方出牌。規則 出牌牌型有5種 1 一張 如4 則5.9可壓過 2 兩張 如44 則55,6...