Download as pdf or txt
Download as pdf or txt
You are on page 1of 3

AIVN Exercise 2

Phạm Đăng Khoa

16/5/2022

1. Áp dụng kiến thức từ việc xử lý chuỗi, hãy viết hàm đếm số lượng chữ cái
(char) và chữ số (digits) trong 1 chuỗi bất kì

Ví dụ:
• Input: “dangkhoa20006”
• Output: char = 8, digits = 5

2. Viết hàm in ra những kí tự bị trùng lắp trong 1 chuỗi bất kì.

• Input: “USS Ronald Reagan”


• Output: S, R, a, n.
Lưu ý: Bạn có thể quy đổi tất cả về dạng lowercase hoặc uppercase.
Ngoài ra, bạn có thể thực hiện bài này bằng vòng lặp thông thường và hãy
nêu ra độ phức tạp của thuật toán. Nếu bạn sử dụng những cấu trúc dữ liệu
khác như dictionary, Counter càng được khuyến khích.

3. Viết hàm tính giá trị trung bình của những digits xuất hiện trong chuỗi đầu
vào

• Input: “dangkhoa20006”
• Output: 1.6

4. Viết hàm đếm số lượng số lượng từ (word) trong một câu

• Input: “I am learning AI”


• Output: 4

1
5. Embosser là một thiết bị in văn bản đặc biệt. Văn bản được in tuần tự, từng
ký tự. Thiết bị bao gồm một bánh xe với các chữ cái tiếng Anh viết thường
được sắp xếp theo vòng tròn, pointer sẽ trỏ đến chữ cái hiện tại sau mỗi
lượt quay. Cứ mỗi lần quay, nó được phép quay theo chiều kim đồng hồ hoặc
ngược chiều kim đồng hồ sao cho số vòng quay ngắn nhất có thể. Ban đầu,
pointer trỏ đến chữ cái ’a’. Các chữ cái khác được sắp xếp như trên hình.
Hãy viết hàm tính toán số lần Embosser quay ít nhất có thể để in ra chuỗi
đầu vào.

Hình 1: Minh họa vòng quay Embosser

Gợi ý: Bạn có thể dùng hàm ord() trong Python để trả về vị trí index
của kí tự đó trong bảng mã ASCII, và từ đó có thể tính ra khoảng cách giữa
những kí tự theo bảng chữ cái.
• Input: zeus
• Output: 18
Giải thích:
• Ban đầu: a->z: 1 lần.
• z -> e: 5 lần.
• e -> u: 10 lần.
• u -> s: 2 lần.

2
• Tổng cộng: 18 lần quay.
Bài tập này được mình lượt dịch từ Codeforces. Bạn có thể vào link gốc để
hiểu rõ bài toán này hơn.
Link gốc Codeforces: (https://codeforces.com/problemset/problem/731/A)

You might also like