作为一个可怕的拉丁学生,几年来,我学会了讨厌拉丁。然而,我有一件事是爱。
拉丁丑闻。
扫描是确定特定诗词的计量标准的行为。对于拉丁语,这意味着将行中的每个音节划分为“轻”或“重”。
在拉丁语中,丑闻有很多规则。但是,与英语不同的是,拉丁语扫描是相当常规的,并且通常不需要任何拉丁语词汇或语法知识。对于这个问题,我们将使用这些规则的简化子集(真实的拉丁文没有整齐的规范)。
在开始之前,韵律必须的Elid。Elision是在单词之间插入音节以简化发音的过程。(例如,“他是”->“他是”)。与英语不同,拉丁语省略遵循非常好的规则。
如果下一个单词以元音开头,则省略以单词元音结尾的单词的最终元音。
诺埃斯特EST->诺埃斯特
以元音后跟“ m”结尾的单词也是如此。
FIDUM AGRICOLAM-> FIDAGRICOLAM
单词首字母“ h”后跟一个元音,出于简化目的,被视为单个元音,并且在被省略时始终会被丢弃。
MULTAE HORAE-> MULTORAE
要么
MULTAM HORAM-> MULTORAM
清除后,我们可以开始扫描。扫描到特定的仪表。应对这一挑战的计量器是dactylic hexameter。乳状六边形有六个“脚”,每只脚由两个或三个音节组成。音节的长短取决于元音。前五个脚的每一个要么是一个长音节的dactyl,然后是两个短的音节,要么是一个spondee,两个长音节。最后一脚是长脚,后跟脚尖(短脚或长脚,对于此问题,您不必确定是哪一个)。
拉丁语中的元音可以短也可以长
夹在两个元音之间的“ i”是一个辅音。(即“ j”)
单词后面跟元音(例如Iactus)开头的“ i”也是辅音
“ q”之后的“ u”也是辅音(即“ v”)
Diphthongs(ae,au,ei,eu,oe和ui)由两个元音组成,但是算作一个元音,并且总是很长
与下一个元音之间有两个或多个辅音的元音总是很长
对于先前的规则,在“ b”,“ c”,“ d”,“ g”,“ p”或“ t”之后的“ l”或“ r”不算作辅音
“ x”算作两个辅音
“ ch”,“ ph”,“ th”和“ qu”被视为一个辅音
单词末尾(省略后)的音节“ que”总是短的
如果元音不是由前面的规则之一强制的,则它可以长或短,这取决于电表
您的任务将是上一行拉丁文,并制作出它的小样。您将通过标准输入将线作为字符串,并输出代表最终扫描的字符串。
输入将仅包含空格和字符AZ。
为了表示这种感觉,您将输出所有音节并标出|
脚的间距。一个长音节将由a表示,-
而一个短音节将由a表示v
,一个anceance(每行的最后一个音节)将由a表示x
。如果存在多种解决方案,那么您可能会输出其中任何一个。
测试用例
维吉尔的《埃涅瓦》的开始。
ARMA VIRUMQUE CANO TROIAE QUI PRIMUS AB ORIS -> -vv|-vv|--|--|-vv|-x (or -vv|-vv|--|-vv|--|-x)
ITALIAM FATO PROFUGUS LAVINIAQUE VENIT -> -vv|--|-vv|-vv|-vv|-x
LITORA MULTUM ILLE ET TERRIS IACTATUS ET ALTO -> -vv|--|--|--|-vv|-x
VI SUPERUM SAEVAE MEMOREM IUNONIS OB IRAM -> -vv|--|-vv|--|-vv|-x (or -vv|--|-vv|-vv|--|-x)
MULTA QUOQUE ET BELLO PASSUS DUM CONDERET URBEM -> -vv|--|--|--|-vv|-x
INFERRETQUE DEOS LATIO GENUS UNDE LATINUM -> --|-vv|-vv|-vv|-vv|-x
ALBANIQUE PATRES ATQUE ALTAE MOENIA ROMAE -> --|-vv|--|--|-vv|-x
进一步规定
拉丁语只有两个单字母单词“ e”和“ a”。您可以假设没有其他一个字母的单词会出现作为输入。
--vv
)中是,但在Italiam(-vv-
)中则不是。也许将Js输入?您实际上是否有可行的解决方案来生成此输出?