Lập trình rất cứng nhắc. Bạn không thể nói với một chương trình "xuất số đếm chuối", bạn phải nói với nó print(bananas)
.
Nhưng khi bạn làm điều đó, bạn sẽ gặp phải một vấn đề: bạn không biết trước mình có bao nhiêu quả chuối, vì vậy bạn không biết có nên sử dụng số nhiều hay không.
Đôi khi, lập trình viên đi theo con đường lười biếng. Thay vì kiểm tra, họ chỉ in there are X banana(s)
.
Nhưng điều đó thật xấu xí, vì vậy chúng tôi cần một chương trình để khắc phục điều này.
Các phương pháp)
Để loại bỏ các số nhiều mơ hồ trong một chuỗi, hãy làm theo các bước sau:
Chia chuỗi trên khoảng trắng thành một danh sách các từ.
Đối với mỗi từ kết thúc bằng
(s)
, hãy làm như sau:- Nếu từ trước là
a
,an
,1
hoặcone
, loại bỏ các(s)
vào cuối của từ. - Nếu không, nếu từ đó là từ đầu tiên trong chuỗi hoặc từ trước không phải là
a
,an
,1
hoặcone
, thay thế(s)
vào cuối của từ vớis
.
- Nếu từ trước là
Tham gia danh sách các từ trở lại với nhau thành một chuỗi, giữ nguyên khoảng trắng ban đầu.
Ví dụ
Hãy lấy một chuỗi there's a banana(s) and three apple(s)
.
Đầu tiên, chúng tôi chia chuỗi thành một danh sách các từ: ["there's", "a", "banana(s)", "and", "three", "apple(s)"]
Đối với bước thứ hai, chúng tôi lấy hai từ kết thúc bằng (s)
: banana(s)
và apple(s)
.
Từ trước banana(s)
là a
, vì vậy chúng tôi loại bỏ (s)
, làm cho nó banana
. Từ trước apple(s)
là three
, vì vậy chúng tôi thay đổi (s)
thành s
, do đó nó trở thành apples
.
Bây giờ chúng ta có ["there's", "a", "banana", "and", "three", "apples"]
. Tham gia danh sách trở lại với nhau, chúng tôi nhận được there's a banana and three apples
. Đây là kết quả cuối cùng của chúng tôi.
Những thách thức)
Tạo một chương trình hoặc hàm lấy một chuỗi mơ hồ ở bất kỳ định dạng hợp lý nào và trả về phiên bản không mơ hồ của chuỗi đó.
Bạn có thể giả sử chuỗi không chứa dòng mới, tab hoặc trả về vận chuyển.
Tôi đã quên chỉ định phân chia theo nhóm không gian hoặc khoảng trắng (nghĩa là có nên okay then
có hai khoảng trắng ["okay", "then"]
hay không ["okay", "", "then"]
) khi đăng thử thách, vì vậy bạn có thể giả sử một trong hai hình thức phân tách.
Trường hợp thử nghiệm
Input -> Output
there are two banana(s) and one leprechaun(s) -> there are two bananas and one leprechaun
there's a banana(s) and three apple(s) -> there's a banana and three apples
apple(s) -> apples
one apple(s) -> one apple
1 banana(s) -> 1 banana
banana -> banana
preserve original whitespace(s) -> preserve original whitespaces
11 banana(s) -> 11 bananas
an apple(s) -> an apple
this is a te(s)t -> this is a te(s)t
I am a (s)tranger(s) -> I am a (s)tranger
Chấm điểm
Vì đây là môn đánh gôn , bài nộp có ít byte nhất sẽ thắng!
apple(s)
trường hợp thử nghiệm apples
? Thách thức nêu rõ Otherwise, if the word is the first word in the string . . . replace the (s) at the end of the word with s.
tôi lưu ý rằng trường hợp này mang lại apples
trong hộp cát cho ba lần sửa đổi đầu tiên nhưng đã thay đổi ở lần thứ tư.
There's a single banana(s)
-> There's a single bananas
.