You are on page 1of 5

Bài tập Python

BÀI TẬP TUẦN 6


Bài 1. Tên biến đúng chỉ bao gồm các chữ cái tiếng Anh, chữ số và dấu gạch dưới
và chúng không thể bắt đầu bằng chữ số. Hãy viết hàm
variableName(name) để kiểm tra xem chuỗi name đã cho có phải là tên biến
chính xác hay không.
Test case Input Output
1 name = "var_1__Int" True
2 name = "qq-q" False
3 name = "2w2" False

Bài 2. Cho một chuỗi, hãy viết hàm alphabeticShift(inputString) để thay thế
từng ký tự của inputString bằng ký tự tiếp theo trong bảng chữ cái tiếng
Anh; tức là thay a bằng b, thay b bằng c, … (z sẽ được thay bằng a).
Test case Input Output
1 inputString = "crazy" dsbaz

Bài 3. Cho tọa độ hai ô trên bàn cờ


tiêu chuẩn, hãy viết hàm
chessBoardCellColor(cell1, cell2) trả lại True nếu 2 ô cùng màu,
ngược lại trả lại False .

Test case Input Output


1 cell1 = "A1" True
cell2 = "C3"

2 cell1 = "A1" False


cell2 = "H3"

huongct@neu.edu.vn
Bài tập Python

Bài 4. Một chuỗi được cho là đẹp nếu mỗi chữ cái trong chuỗi xuất hiện nhiều lần
hơn so với với chữ cái trước đó trong bảng chữ cái trong chuỗi; nghĩa là: b
xuất hiện không nhiều hơn a; c xuất hiện không nhiều hơn,…. Lưu ý rằng
chữ a không có chữ cái trước nó.

Cho một chuỗi inputString , hãy viết hàm isBeautifulString(inputString) trả


lại True nếu đó là chuỗi đẹp, ngược lại trả lại False .

Test case Input Output


1 inputString = "bbbaacdafe" True
2 inputString = "aabbb" False
3 inputString = "bbc" False

Bài 5. Địa chỉ vật lý (địa chỉ MAC) là một định danh duy nhất được gán cho các
giao card mạng để truyền thông trên phân đoạn mạng vật lý. Định dạng
chuẩn (IEEE 802) để in địa chỉ MAC gồm 48 bit được chia thành 6 nhóm
ngăn cách nhau bởi dấu gạch ngang, mỗi nhóm là 2 kí số hệ 16 (ví dụ: 01-
23-45-67-89-AB). Hãy viết hàm isMACAddress(inputString) kiểm tra
chuỗi inputString đã cho có phải là một địa chỉ vật lý MAC hay không.

Test case Input Output


1 inputString = "00-1B-63-84-45-E6" True
2 inputString ="Z1-1B-63-84-45-E6" False
3 inputString = "not a MAC-48 address" False
4 inputString = "FF-FF-FF-FF-FF-FF" True
5 inputString = "00-00-00-00-00-00" True
6 inputString = "G0-00-00-00-00-00" False
7 inputString = "02-03-04-05-06-07-" False
8 inputString = "12-34-56-78-9A-BC" True
9 inputString = "FF-FF-AB-CD-EA-BC" True
10 inputString = "12-34-56-78-9A-BG" False

Bài 6. Xét dãy số a0, a1, ..., an trong đó một phần tử bằng tổng bình phương
các chữ số của phần tử trước đó. Chuỗi kết thúc khi một phần tử đã có trong
chuỗi xuất hiện lại. Ví dụ:

o a0 = 16
o a1 = 12 + 62 = 37
o a2 = 32 + 72 = 58

huongct@neu.edu.vn
Bài tập Python

o a3 = 52 + 82 = 89
o a4 = 82 + 92 = 145
o a5 = 12 + 42 + 52 = 42
o a6 = 42 + 22 = 20
o a7 = 22 + 02 = 4
o a8 = 42 = 16 → độ dài 9

Cho phần tử đầu tiên a0, hãy viết hàm squareDigitsSequence(a0) để tìm độ dài
của dãy số.

Test case Input Output


1 a0 = 16 9
2 a0 = 103 4
3 a0 = 1 2
4 a0 = 11 11

Bài 7. Địa chỉ IP là một nhãn số được gán cho mỗi thiết bị (ví dụ: máy tính, máy
in,…) tham gia vào mạng máy tính sử dụng giao thức IP để giao tiếp. Có
hai phiên bản của giao thức IP và do đó có hai phiên bản của địa chỉ. Một
trong số đó là địa chỉ IPv4.

Địa chỉ IPv4 có dạng X.Y.Z.T (trong đó X, Y, Z, T có giá trị từ 0..255), không
có số 0 ở đầu X, Y, Z, T.

Cho một chuỗi inputString , hãy viết hàm isIPv4Address(inputString)


để trả lại True nếu nó có đáp ứng các quy tắc đặt tên địa chỉ IPv4,
ngược lại trả lại False .

Test case Input Output


1 inputString = "172.16.254.1" True
2 inputString = "172.316.254.1" False
3 inputString = ".254.255.0" False
4 inputString = "17.233.00.131" False
5 inputString = "255.100.81.160.172" False
6 inputString = "17.233.01.131" False
7 inputString = "255.255.255.255" True

Bài 8. Cho một mảng các số nguyên inputArray đại diện cho tọa độ của các
chướng ngại vật nằm trên một đường thẳng. Giả sử rằng bạn đang nhảy từ

huongct@neu.edu.vn
Bài tập Python

điểm có tọa độ 0 sang bên phải. Bạn chỉ được phép thực hiện các bước
nhảy có cùng độ dài được biểu thị bằng một số nguyên nào đó.

Hãy viết hàm avoidObstacles(inputArray) tính độ dài tối thiểu của


bước nhảy đủ để tránh tất cả các chướng ngại vật.

Test case Input Output


1 inputArray = [5, 3, 6, 7, 9] 4
2 inputArray = [1, 3, 5, 8, 9, 12] 7
3 inputArray = [1, 3, 5, 9, 15] 2

Bài 9. Hãy viết hàm isSumOfConsecutive2(n) trả lại số cách biểu diễn n thành
tổng của các số nguyên dương liên tiếp. Ví dụ:

n = 9 → isSumOfConsecutive2(n) = 2 (Vì n = 9: 2 + 3 + 4 = 9 và 4
+ 5 = 9)
n = 8 → isSumOfConsecutive2(n) (vì không có cách nào để biểu diễn n
= 8 ).

Test case Input Output


1 n=9 2
2 n=8 0
3 n = 15 3
4 n = 24 1
5 n = 13 1
6 n = 25 2
7 n = 99 5

Bài 10. Trong quần vợt, người chiến thắng trong một set dựa trên số trận thắng
của mỗi người chơi. Người chơi đầu tiên thắng 6 điểm sẽ được tuyên bố
là người chiến thắng trừ khi đối thủ của họ đã thắng 5 điểm, trong trường
hợp đó, set đấu tiếp tục cho đến khi một trong những người chơi thắng 7
điểm. Cho hai số nguyên hãy viết hàm
score1 và score2 ,
tennisSet(score1, score2) xác định xem liệu một set quần vợt có thể
kết thúc với điểm số cuối cùng là score1 : score2 hay không.

huongct@neu.edu.vn
Bài tập Python

Test case Input Output Test case Input Output


1 score1: 3 True 11 score1: 1 True
score2: 6 score2: 6
2 score1: 8 False 12 score1: 7 False
score2: 5 score2: 8
3 score1: 6 False 13 score1: 5 False
score2: 5 score2: 6
4 score1: 7 False 14 score1: 4 False
score2: 7 score2: 7
5 score1: 6 True 15 score1: 6 True
score2: 4 score2: 7
6 score1: 7 True 16 score1: 6 False
score2: 5 score2: 6
7 score1: 7 False 17 score1: 6 False
score2: 2 score2: 8
8 score1: 7 True 18 score1: 6 False
score2: 6 score2: 10
9 score1: 4 False 19 score1: 10 False
score2: 10 score2: 0
10 score1: 0 False 20 score1: 3 False
score2: 0 score2: 4

huongct@neu.edu.vn

You might also like