Arka fon
Bir dilbilimci olan arkadaşınız, çeşitli dillerde basit konuşma snippet'lerini kaydetti ve analiz etti. Oldukça düşüncesiz oldukları için, her pasajın hangi dilde olduğunu unutmuşlar. Cümle yapılarını analiz eden ve imkansız vakaları dışlayan bir program oluşturarak onlara yardım etmelisiniz.
Giriş
Girişiniz , konu , fiil ve nesneSVO
anlamına gelen karakterleri içeren boş olmayan bir dizedir . Dilbilimci tarafından analiz edilen bir konuşma snippet'ini temsil eder.
Çıktı
Göreviniz dizeyi cümlelere bölmek ve .
her cümlenin ardından bir nokta girmek . Cümle ya bir fiil, VEYA bir fiil ve bir konu, VEYA bir fiil, bir konu ve bir nesne içerir. Ancak, orijinal dilin hangi kelime sırasını kullandığını bilmiyorsunuz; İngilizce konu-fiil nesnesi kullanır , ancak Latince gibi diğer diller konu-nesne fiilini kullanır . Aslında, altı permütasyonun hepsi doğal dillerde mevcuttur, bu yüzden her birini kontrol etmelisiniz.
Çıktınız, satırsonu ile ayrılmış bir dizede, geçerli her sözcük sırası, iki nokta üst üste :
ve bu diziye göre cümlelere bölünmüş giriş dizesi içermelidir . Dize bir sözcük sırasıyla ayrıştırılamazsa, karşılık gelen satır atlanmalıdır. Satırların sırası önemli değildir ve en az bir kelime sırasının ayrıştırılabileceği garanti edilmektedir.
Misal
Girdiyi düşünün
VSVOSV
Gelen VOS
sipariş, Kesik olarak çözümlenebilir VS.VOS.V.
ve içinde SVO
sırayla, o kadar çözümlenebilir V.SVO.SV.
. Sipariş OSV
de çalışır ve tam çıktı
VOS:VS.VOS.V.
SVO:V.SVO.SV.
OSV:V.SV.OSV.
Kurallar ve puanlama
Tam bir program veya işlev yazabilirsiniz. En düşük bayt sayısı kazanır ve standart boşluklara izin verilmez. Düzenli ifadelere ve tüm yerleşik öğelere izin verilir.
Test senaryoları
Input:
V
Output:
VSO:V.
VOS:V.
SVO:V.
OVS:V.
SOV:V.
OSV:V.
Input:
SVV
Output:
SVO:SV.V.
SOV:SV.V.
OSV:SV.V.
Input:
VSVOV
Output:
SVO:V.SVO.V.
Input:
VSOVS
Output:
VSO:VSO.VS.
OVS:VS.OVS.
Input:
SVOSV
Output:
SVO:SVO.SV.
OSV:SV.OSV.
Input:
VSVOSV
Output:
VOS:VS.VOS.V.
SVO:V.SVO.SV.
OSV:V.SV.OSV.
Input:
VSVVSOVSV
Output:
VSO:VS.V.VSO.VS.V.
OVS:VS.V.VS.OVS.V.
SOV:V.SV.V.SOV.SV.
Input:
SVVSVSOVSVV
Output:
SOV:SV.V.SV.SOV.SV.V.
Input:
VSOVSVSOVSVVS
Output:
VSO:VSO.VS.VSO.VS.V.VS.
OVS:VS.OVS.VS.OVS.V.VS.