Editorial for Hello nqson
Remember to use this editorial only when stuck, and not to copy-paste code from it. Please be respectful to the problem author and editorialist.
Submitting an official solution before solving the problem yourself is a bannable offence.
Submitting an official solution before solving the problem yourself is a bannable offence.
Author:
Để giải quyết bài toán, ta hãy chuyển tất cả tên thành viết thường, rồi tìm chữ cái đầu tiên của mỗi từ và từ cuối cùng của tên người đó.
Bước 1: Chuyển tất cả chữ hoa thành chữ thường: if str[i]>='A' and str[i]<='Z': str[i] = str[i] - 'A' + 'a'
Bước 2: Tìm và xuất ra các chữ cái đầu tiên của mỗi từ
- Xét xem chữ cái đó có phải chữ cái đầu tiên của mỗi từ không, ta một đặt biến:
first_letter = true
- Nếu đó là chữ cái đầu tiên, ta sẽ xuất ra chữ đó:
if first_letter: print(str[i])
. Đương nhiên, các chữ tiếp sau đó không phải là chữ đầu tiên của một từ:first_letter = false
- Nếu đó là ký tự space (dấu cách) thì chữ tiếp theo là chữ đầu tiên của từ:
if str[i]==' ': first = true
Bước 3: Tìm từ cuối cùng
- Tạo một biến lưu chữ cái đầu tiên của từ cuối cùng:
pos_last_word
- Trong quá trình ta tìm chữ cái đầu, ta đồng thời cập nhập từ cuối cùng mà ta tìm được hiện tại:
if first_leter: pos_last_word = i
- Sau đó ta xuất ra từ cuối cùng (ta đã xuất ra chữ đầu tiên của từ đó ở bước 2 nên không cần xuất lại nó nữa):
for i in range(pos_last_word+1,n): print(str[i])
Comments