Chuẩn hóa họ tên và tạo email sinh viên
Khi sinh viên đăng ký tài khoản tại AI Empire Academy, dữ liệu họ tên người dùng nhập từ bàn phím thường chứa nhiều khoảng trắng thừa ở đầu, cuối và giữa các từ, cũng như viết hoa…
Tiến độ của tôi ở bài này
Điểm được lưu vào tài khoản sau khi chấm bài.
Đang tải điểm của bạn…
Kiến thức và chủ đề
Kiến thức tiên quyết: string indexing, lists, functions.
Nội dung đề bài
Mục tiêu kiến thức
- Sử dụng các phương thức xử lý chuỗi:
.strip(),.split(),.lower(),.capitalize(),' '.join(). - Kỹ thuật chuyển đổi ký tự tiếng Việt có dấu sang không dấu để tạo định danh email an toàn.
- Kiểm tra tính hợp lệ của văn bản đầu vào.
Mô tả bài toán
Khi sinh viên đăng ký tài khoản tại AI Empire Academy, dữ liệu họ tên người dùng nhập từ bàn phím thường chứa nhiều khoảng trắng thừa ở đầu, cuối và giữa các từ, cũng như viết hoa tùy tiện (ví dụ: " trAn mInH nHaT ").
Hệ thống cần chuẩn hóa thông tin này và tự động cấp email sinh viên theo quy định sau:
- Chuẩn hóa họ tên (
full_name): - Loại bỏ toàn bộ khoảng trắng thừa.
- Mỗi từ viết hoa chữ cái đầu tiên, các chữ cái còn lại viết thường.
- Các từ nối với nhau bằng đúng 1 khoảng trắng duy nhất (ví dụ:
"Tran Minh Nhat"). - Quy tắc sinh email (
email): - Đổi họ tên đã chuẩn hóa thành tiếng Việt không dấu.
- Cấu trúc email:
<Tên chính><chữ cái đầu của họ và các tên đệm>@<domain>. - Toàn bộ ký tự trong email viết thường.
- Ví dụ:
"Tran Minh Nhat"→ Tên chính là"nhat", chữ cái đầu của họ và tên đệm là"t","m"⇒ email lànhattm@aiempire.edu.vn. - Domain mặc định là
"aiempire.edu.vn". - Ngoại lệ: Nếu
raw_namerỗng hoặc chỉ chứa toàn khoảng trắng, hàm phải ném raValueError("Ten khong duoc de trong").
Hãy viết hàm normalize_student_info(raw_name: str, domain: str = "aiempire.edu.vn") -> dict[str, str] trả về một dict gồm hai khóa: {"full_name": ..., "email": ...}.
Input
raw_name: Chuỗi ký tựstr.domain: Chuỗi ký tựstr(tùy chọn, mặc định"aiempire.edu.vn").
Output
Trả về dict[str, str] gồm full_name và email.
Ràng buộc
- Độ dài
raw_nametừ 0 đến 200 ký tự. - Thời gian chạy tối đa: 1000ms.
- Giới hạn bộ nhớ: 256MB.
Ví dụ 1
Input
`raw_name = " trAn mInH nHaT "`Output
{
"full_name": "Tran Minh Nhat",
"email": "nhattm@aiempire.edu.vn"
}Giải thích
Họ tên được làm sạch thành "Tran Minh Nhat". Email gồm tên chính "nhat" + chữ cái đầu họ đệm "t" + "m" = "nhattm@aiempire.edu.vn".
Ví dụ 2
Input
`raw_name = "nguyen van a"`Output
{
"full_name": "Nguyen Van A",
"email": "anv@aiempire.edu.vn"
}Gợi ý và lời giải chỉ mở sau khi bạn bấm Nộp bài. Giáo viên và quản trị viên mở được ngay.
Góp ý & báo lỗi bài tập
Đề bài chưa rõ, test có vấn đề hay bạn có ý tưởng giúp bài tốt hơn? Gửi cho đội ngũ AI Empire nhé — mỗi góp ý đều được đọc.
