पृष्ठभूमि
आपके मित्र, एक भाषाविद ने विभिन्न भाषाओं में कुछ सरल वार्तालाप स्निपेट रिकॉर्ड और विश्लेषण किया है। काफी अनुपस्थित रहने के कारण, वे भूल गए हैं कि प्रत्येक स्निपेट किस भाषा में था। आपको एक प्रोग्राम बनाकर उनकी मदद करनी चाहिए जो वाक्य संरचनाओं का विश्लेषण करता है और असंभव मामलों को बाहर निकालता है।
इनपुट
आपका इनपुट एक गैर-रिक्त स्ट्रिंग है जिसमें वर्ण हैं SVO
, जो विषय , क्रिया और ऑब्जेक्ट के लिए खड़े हैं । यह भाषाविद द्वारा विश्लेषण किए गए वार्तालाप स्निपेट का प्रतिनिधित्व करता है।
उत्पादन
आपका काम स्ट्रिंग को वाक्यों में तोड़ना है, और .
प्रत्येक वाक्य के बाद एक अवधि दर्ज करना है । एक वाक्य में एक क्रिया, या एक क्रिया और एक विषय, या एक क्रिया, एक विषय और एक ऑब्जेक्ट होता है। हालाँकि, आप नहीं जानते कि मूल भाषा किस शब्द का उपयोग करती है; अंग्रेजी विषय-क्रिया-वस्तु का उपयोग करती है , लेकिन अन्य भाषाएं, जैसे लैटिन, विषय-वस्तु-क्रिया का उपयोग करती हैं । वास्तव में, सभी छह क्रमपरिवर्तन प्राकृतिक भाषाओं में मौजूद हैं, इसलिए आपको उनमें से प्रत्येक की जांच करनी चाहिए।
आपके आउटपुट में एक नई-लाइन-अलग स्ट्रिंग, प्रत्येक लागू शब्द क्रम, एक कॉलन :
और इनपुट स्ट्रिंग उस क्रम के अनुसार वाक्यों में टूट जाएगा। यदि स्ट्रिंग को कुछ शब्द क्रम में पार्स नहीं किया जा सकता है, तो संबंधित पंक्ति को छोड़ दिया जाएगा। लाइनों का क्रम मायने नहीं रखता है, और यह गारंटी है कि कम से कम एक शब्द आदेश पार्स किया जा सकता है।
उदाहरण
इनपुट पर विचार करें
VSVOSV
में VOS
आदेश, Snipped के रूप में पार्स किया जा सकता VS.VOS.V.
है, और में SVO
आदेश है, यह के रूप में पार्स किया जा सकता V.SVO.SV.
। आदेश OSV
भी काम करता है, और पूर्ण आउटपुट है
VOS:VS.VOS.V.
SVO:V.SVO.SV.
OSV:V.SV.OSV.
नियम और स्कोरिंग
आप एक पूर्ण कार्यक्रम या एक फ़ंक्शन लिख सकते हैं। सबसे कम बाइट गिनती जीतता है, और मानक खामियों को रोक दिया जाता है। नियमित अभिव्यक्ति और सभी बिल्ट-इन की अनुमति है।
परीक्षण के मामलों
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.