Professional Documents
Culture Documents
BT Python Tuần 5
BT Python Tuần 5
s1 = "aabcc"
s2 = "adcaa"
→ commonCharacterCount(s1, s2) = 3
Bài 2. Số vé thường bao gồm một số lượng chẵn các chữ số. Cho một số vé, viết
hàm isLucky() để xác định xem số vé đó có may mắn hay không. Một số
vé được coi là may mắn nếu tổng của nửa đầu tiên của số bằng tổng của
nửa còn lại số đó. Ví dụ:
Bài 3. Một số người đang đứng thành hàng trong công viên. Giữa chúng có những
cây không thể di chuyển được. Hãy viết hàm sortByHeight() để sắp xếp
lại những người theo chiều cao của họ theo thứ tự tăng dần mà không cần
di chuyển cây.
Nếu a [i] = -1 , thì vị trí thứ i là một cây, ngược lại thì a [i] là chiều cao
của người đứng ở vị trí thứ i.
Bài 4. Bạn đang đứng ở một cái giếng thần kỳ. Nó có hai số nguyên dương được
viết trên đó: a và b . Mỗi lần bạn ném một viên bi ma thuật vào giếng, nó
mang lại cho bạn a * b đôla và sau đó cả a và b đều tăng thêm 1. Bạn
có n viên bi ma thuật. Hãy viết hàm magicalWell(a, b, n) để trả lại số tiền
bạn sẽ kiếm được?
huongct@neu.edu.vn
Bài tập Python
Bài 5. Một cậu bé đang học số học. Bé vừa học cách cộng hai số nguyên, viết
dưới một số khác, từng cột. Nhưng anh ấy luôn quên mất phần quan trọng
đó là số nhớ.
Ví dụ:
param1 = 456
param2 = 1734
huongct@neu.edu.vn
Bài tập Python
Bài 6. Cho một chuỗi, hãy viết hàm lineEncoding(s) trả về mã hóa của nó được
xác định như sau:
• Đầu tiên, chuỗi được chia thành số chuỗi con rời rạc ít nhất có thể bao
gồm các ký tự giống nhau
o ví dụ: "aabbbc" được chia thành các chuỗi con ["aa",
"bbb", "c"]
• Tiếp theo, mỗi chuỗi con có độ dài > 1 được thay thế bằng cách ghép
giữa độ dài của nó và ký tự được lặp lại
o Ví dụ: chuỗi con "bbb" được thay thế bằng "3b"
• Cuối cùng, tất cả các chuỗi mới được nối với nhau theo cùng một thứ
tự và một chuỗi mới được trả về.
o Hộp nhỏ nhất là size 1 , hộp tiếp theo là size 2 , ..., cuối cùng là size k .
o Các hộp có kích thước lẻ đều chỉ chứa táo vàng. Những hộp có kích
thước chẵn đều chỉ chứa táo đỏ.
Hãy viết hàm appleBoxe(k) tính chênh lệch giữa số táo đỏ và số táo vàng.
Ví dụ: k = 5 , thì appleBoxes(k) = -15 .
Vì có: 1 + 3 * 3 + 5 * 5 = 35 táo vàng và 2 * 2 + 4 * 4 = 20 táo đỏ.
Test case Input Output Test case Input Output
1 k: 5 -15 6 k: 12 78
2 k: 15 -120 7 k: 9 -45
3 k: 36 666 8 k: 40 820
4 k: 1 -1 9 k: 37 -703
5 k: 14 105
huongct@neu.edu.vn
Bài tập Python
Bài 8. Xác định độ tròn của một số nguyên là số lượng các số 0 ở cuối của số
đó. Cho một số nguyên n, hãy viết hàm increNumberRoundness(n) kiểm tra
xem có thể tăng độ tròn của n bằng cách hoán đổi một số cặp chữ số của nó
không, hàm trả về true nếu có thể tăng độ tròn của n, ngược lại là false
Ví dụ:
Bài 9. Khi một ngọn nến cháy xong nó sẽ để lại một phần còn lại. makeNew phần
còn lại có thể được kết hợp để tạo ra một ngọn nến mới, khi cháy hết, sẽ để
lại một ngọn nến thừa khác.
Bạn có nến số lượng nến candlesNumber thuộc quyền sở hữu của bạn. Hãy
viết hàm candles(candlesNumber, makeNew trả về tổng số nến bạn có thể
đốt, giả sử rằng bạn tạo ra những ngọn nến mới ngay sau khi bạn có đủ số
lượng ngọn nến thừa?
Ví dụ:
huongct@neu.edu.vn
Bài tập Python
• Đốt ngọn nến đã tạo ra, ngọn nến còn sót lại khác (tổng cộng
( 2 ngọn nến còn lại);
• Tạo một ngọn nến từ những các ngọn nên thừa còn lại
• Đốt ngọn nến cuối cùng.
Do đó bạn có 5 + 2 + 1 + 1 = 9 ngọn nến, đây chính là câu trả lời.
Test Input Output Test case Input Output
case
1 candlesNumber: 5 9 6 candlesNumber: 20
makeNew: 2 14
makeNew: 3
2 candlesNumber: 1 1 7 candlesNumber: 23
makeNew: 2 12
makeNew: 2
3 candlesNumber: 3 4 8 candlesNumber: 7
makeNew: 3 12
makeNew: 2
4 candlesNumber: 11 16 9 candlesNumber: 16
makeNew: 3 13
makeNew: 5
5 candlesNumber: 15 18 10 candlesNumber: 2 2
makeNew: 5 makeNew: 3
Bài 10. Cho một ma trận, hãy viết một hàm minesweeper(matrix)nđể setup cho trò
chơi Minesweeper.
Input: Một ma trận hình chữ nhật không rỗng bao gồm các giá trị logic: true
nếu ô tương ứng chứa một quả mìn, ngược lại là false.
Output: Ma trận hình chữ nhật có cùng kích thước với ma trận ban đầu, mỗi
ô chứa một số nguyên bằng số mìn trong các ô lân cận.
Ví dụ:
thì
huongct@neu.edu.vn