배경
언어학자인 친구가 간단한 대화 스 니펫을 여러 언어로 기록하고 분석했습니다. 그들은 결석 한 마음으로 각 스 니펫의 언어를 잊어 버렸습니다. 문장 구조를 분석하고 불가능한 경우를 배제하는 프로그램을 만들어서 도움을 주어야합니다.
입력
귀하의 입력은 문자가 포함 된 비어 있지 않은 문자열 SVO
에 대해 서, 주제 , 동사 및 오브젝트 . 언어학자가 분석 한 대화 스 니펫을 나타냅니다.
산출
당신의 임무는 문자열을 문장으로 나누고 .
각 문장 뒤에 마침표를 입력하는 것 입니다. 문장에는 동사, OR 동사 및 주제, 또는 동사, 주제 및 객체가 포함됩니다. 그러나 원래 언어가 어떤 단어 순서를 사용하는지 모릅니다. 영어는 subject-verb-object 를 사용하지만 라틴어와 같은 다른 언어는 subject-object-verb를 사용 합니다. 실제로 6 개의 순열은 모두 자연 언어로 존재하므로 각각을 확인해야합니다.
출력은 개행으로 구분 된 문자열에 적용 가능한 각 단어 순서, 콜론 :
및 입력 문자열을 해당 순서에 따라 문장으로 나눕니다. 문자열을 단어 순서로 파싱 할 수 없으면 해당 행을 생략해야합니다. 행 순서는 중요하지 않으며 적어도 하나의 단어 순서를 구문 분석 할 수 있습니다.
예
입력을 고려하십시오
VSVOSV
에서 VOS
위해 상기 잘린 같이 분석 될 수있는 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.