Programlama çok katıdır. Bir programa "muz sayısını hesaplamak" diyemezsiniz, bunu söylemelisiniz print(bananas).
Ancak bunu yaptığınızda, bir sorunla karşılaşırsınız: önceden kaç tane muzunuz olduğunu bilmiyorsunuz, bu yüzden çoğul kullanıp kullanmayacağınızı bilmiyorsunuz.
Bazen, programcılar tembel yoldan gider. Kontrol etmek yerine, sadece yazdırırlar there are X banana(s).
Ama bu çirkin, bu yüzden bunu düzeltmek için bir programa ihtiyacımız var.
Metodlar)
Bir dizedeki belirsiz çoğulları kaldırmak için aşağıdaki adımları izleyin:
Boşluklardaki dizgiyi bir sözcük listesine bölün.
İle biten her kelime
(s)için, aşağıdakileri yapın:- Yukarıdaki kelime ise
a,an,1ya daone, kaldırma(s)kelime sonunda. - Kelimesi ilk kelime dizesini veya önceki kelime değilse Aksi
a,an,1veyaone, yerine(s)ile kelimenin sonundakis.
- Yukarıdaki kelime ise
Orijinal boşlukları koruyarak kelime listesine tekrar bir dizgede katılın.
Örnek (lar)
Bir ip atalım there's a banana(s) and three apple(s).
İlk olarak, dizgiyi bir sözcük listesine böldük: ["there's", "a", "banana(s)", "and", "three", "apple(s)"]
İkinci adım için biten iki kelimeyi alıyoruz (s): banana(s)ve apple(s).
Önce kelime banana(s)olduğunu a, bu yüzden kaldırmak (s)yapma, banana. Kelimesi daha önce apple(s)olduğu threedeğiştirmemiz yüzden (s)hiç sböylece olur apples.
Şimdi bizde var ["there's", "a", "banana", "and", "three", "apples"]. Listeye tekrar katıldığımızda, anlaştık there's a banana and three apples. Bu bizim son sonucumuz.
Mücadeleler)
Herhangi bir makul biçimde belirsiz bir dize alan ve bu dize belirsiz halini döndüren bir program veya işlev oluşturun .
Dizenin yeni satırlar, sekmeler veya satırbaşları içermediğini varsayabilirsiniz.
Mücadeleyi gönderirken boşluk gruplarına mı yoksa boşluklara mı ayrılacağımı (yani okay theniki boşlukla mı yoksa olacağına ["okay", "then"]mı ["okay", "", "then"]) belirtmeyi unuttum , böylelikle ayrılmanın her iki şeklini de kabul edebilirsiniz.
Test durumları
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
puanlama
Bu kod-golf olduğundan , en az bayt olan gönderim kazanır!
apple(s)Test durumu applesyerine vermeli mi? Otherwise, if the word is the first word in the string . . . replace the (s) at the end of the word with s.Zorluk, bu davanın applesilk üç revizyon için kum havuzunda ortaya çıktığını ancak dördüncü olarak değiştiğini belirtiyor .
There's a single banana(s)-> There's a single bananas.