Đề bài
Lấy chữ cái đầu tiên của mỗi từ trong full_name, chuyển thành chữ in hoa, rồi nối các chữ cái đó lại. Các từ được phân tách bởi một hoặc nhiều dấu cách.
Cài đặt hàm initials(full_name).
Đầu vào
full_name: Một họ tên gồm các chữ cái và dấu cách.
Đầu ra
Trả về chữ viết tắt, ví dụ "ADL".
Ràng buộc
1 ≤ độ dài của full_name ≤ 200; full_name chứa ít nhất một chữ cái
Ví dụ
Đầu vào:
full_name = "Ada Lovelace"
Kết quả mong đợi:
expected = "AL"
Đầu vào:
std::string full_name = "Ada Lovelace";
Kết quả mong đợi:
std::string expected = "AL";
Đầu vào:
string full_name = "Ada Lovelace";
Kết quả mong đợi:
string expected = "AL";
Giải thích
A từ Ada và L từ Lovelace: "AL".
Đầu vào:
full_name = "grace brewster hopper"
Kết quả mong đợi:
expected = "GBH"
Đầu vào:
std::string full_name = "grace brewster hopper";
Kết quả mong đợi:
std::string expected = "GBH";
Đầu vào:
string full_name = "grace brewster hopper";
Kết quả mong đợi:
string expected = "GBH";
Giải thích
Dấu cách thừa không ảnh hưởng; chữ viết tắt được in hoa: "GBH".
Hướng tiếp cận
Hãy tự thử trước, sau đó mở từng gợi ý một.
Gợi ý 1
Mỗi từ đóng góp đúng một ký tự: chữ cái đầu tiên của nó.
Gợi ý 2
Duyệt qua tên và theo dõi khi nào một từ mới bắt đầu sau khoảng trắng.
Gợi ý 3
Lưu ý nhiều khoảng trắng liên tiếp để chỉ lấy một initial cho mỗi từ.
Độ phức tạp mong đợi
thời gian O(n), bộ nhớ phụ O(1)
Tham khảo
Thử thách này đã được điều chỉnh cho CodeUtility. Hãy làm theo đề bài và các ràng buộc ở trên.