踩的坑:
q 1 5: 在測試樣例中有可能 a= 1>b=5, 而題目樣例並沒有體現這一點
用法記錄:
vector chengji:最大值的求法
踩的坑:
'\'要寫成'\\'
用法記錄:字元string的查詢:
rfind(), find()
字元的erase(),傳參同substr()
stable_sort()
// 記錄最多8條錯誤記錄
// 合併錯誤記錄:檔名 行數 同 計數累加
#include
#include
#include
#include
#include
using
namespace std;
bool
compare
(pair
int> a, pair
int> b)
intmain()
}}// errors全部儲存號,現在開始按照錯誤多少排序
// stable_sort的作用:
// 1.按照錯誤多的排前面
// 2.錯誤等的,按照push_back()的順序/相對順序保持不變,這是和sort比的優勢
stable_sort
(errors.
begin()
, errors.
end(
), compare)
;// 然後輸出前面8條,且檔案名字太多要刪除
int idx =0;
while
(idx <
8&& errors.
size()
) cout << errors[idx]
.first <<
' '<< errors[idx]
.second << endl;
idx++;}
return0;
}
撲克牌的大小
主要解題思路:
問題1:如何分辨兩組牌是否為同乙個型別?
答案1:可以通過輸入字串的間隔符(空格數)是否相同判斷。
問題2:如何判斷單個牌的大小順序?
答案2:組乙個字串「345678910jqka2jokerjoker」,通過判斷對應單個字元或字串在該字串的位置進行大小比較。
手牌比較過程:
手牌的型別相同(單對單,對對對,三對三,四對四,順子對順子):
a. 直接比較第一張手牌的大小即可;
手牌的型別不同(分為三種情況):
a. 存在王炸,輸出王炸;
b. 存在炸彈,輸出炸彈;
c. 否則輸出error;
用法記錄:
string:
find()與substr()可以在某種程度上實現split()功能
count功能
// 輸入手牌:個子、對子、順子、三個、炸彈、對王中的一種
主要思路:
用佇列實現迴圈的刪除
//0 1 2 3 4 5 6 7
// 0 1 3 4 6 7
// 用佇列模擬,隊首取數,用乙個計數器計數,隔2個刪乙個,其他的重新放到隊尾
#include
#include
using
namespace std;
intmain()
// count 計數
int count =0;
while
(q.size()
!=1)else
}int c = q.
front()
; cout << c << endl;
}return0;
}
其他華為筆試題:
01
華為2016校園招聘上機筆試題
華為2016校園招聘上機筆試題 撲克牌大小 已通過測試,通過。思路 主要是將比較的左右牌,進行區分開來 首先將左右的牌轉化為字串,10 佔兩個字串,需要特殊處理 將 10 轉化為 1 這樣可以通過左右兩邊字元的個數多少進行區分 include include 定義輸出的字元陣列 char print...
華為2016校園招聘上機筆試題
老師想知道從某某同學當中,分數最高的是多少,現在請你程式設計模擬老師的詢問。當然,老師有時候需要更新某位同學的成績.思路 區間最大值,點更新。這裡是最簡單的,其實還有區間求和,區間最大值,區間最小值,點更新,區間更新。可以用線段樹 樹狀陣列 rmq 這裡只簡單說明一下區間最大值和點更新,剩餘的放在下...
華為2013校園招聘上機筆試題
上機時間兩小時,3道題 1 字串轉換 問題描述 將輸入的字串 字串僅包含小寫字母 a 到 z 按照如下規則,迴圈轉換後輸出 a b,b c,y z,z a 若輸入的字串連續出現兩個字母相同時,後乙個字母需要連續轉換2次。例如 aa 轉換為 bc,zz 轉換為 ab 當連續相同字母超過兩個時,第三個出...