问题描述
这是一道提交答案题,你需要使用“星语”完成若干任务。
语言描述 这是一款名为“星语”的语言,名字有深意,但你只需要关心语法和执行流程:“星语”仅由两 种语句构成:普通语句和终止语句。
1.pattern:replacement:普通语句。将读入串中最早出现的 pattern 替换为 replacement。
2. pattern::replacement:终止语句。将读入串中最早出现的 pattern 替换为 replacement, 同时终止程序。
其中 pattern 和 replacement 均为字符串(可以为空,字符集为所有可见 ASCII 码),自动过 滤其前导和末尾空格。
执行流程
当程序输入进一个字符串 S 时,“星语”会执行如下流程:
1. 按照行依次执行语句,判断 S 中是否存在 pattern。
2. 如果存在,找到 S 中最左侧的匹配上 pattern 的子段,将其替换为 replacement。若该语
句是终止语句,程序结束。否则回到步骤 1。
3. 如果执行到程序末尾,程序结束。 你的输出即为程序结束时的 S。
例题示范 1
输入串 S 为 Hello,,用“星语”将其修改成 World!。
我们可以写:Hello,:World! 当然也可以写: Hello,::World!。
例题示范 2
输入串 S,将其中所有的 s 删除。
我们可以写:s。
例题示范 3
输入串 S,在 S 的开头添一个 s。
我们可以写:::s;
题目描述
现在你已经学会了 1+1,让我们来试试吧!
注意“星语”想必大家都会写,但就像「明明 polylog 的题你非得写个树分块还调不出来」一 样,咱追求的是效率。“星语”也一样,你的得分将与行数有关。
当然,如果你的程序 CE 了,或者输出错误,那自然不得分捏。
任务一:石头剪刀布
转宝现在很爱玩石头剪刀布,但是又很怕玩。原因是他每次惯性思维出剪刀,大伙们看破不说 破,于是每次输的都是他。
任务二:啵啵啵
回到班后,转转掌握了一个新技能:啵啵啵。简单来说就是把嘴唇抿起来,然后猛地向外弹,就 会发出“啵”的一声。究其源头,还得是化竞那帮“杭二牛子”研究出来的花样。
现在给定一个全是 b 的串 S (2 ≤ |S| ≤ 5),你的任务是在每个 b 后插入一个 o。
样例:S 为 bbb,程序执行结束后的 S 为 bobobo。
任务三:四缺一
经典四缺一,这次是 1 ∼ 5 这 5 个整数中缺了一个。
给定一个长为 4 的串 S,保证 ∀0 ≤ i < j < 4 有 Si不等于 Sj 且 Si ∈ [1,5],将其替换为缺失的那一 个数。
样例:S 为 5241,程序执行结束后的 S 为 3。
任务四:11 的倍数
给定一个串 S (1 ≤ |S| ≤ 5),保证不为 0(即 |S| =1 且 $S_0 为 0$),判断 S 在整数下是否为 11
的倍数,若是替换为 yes,否则替换为 no。
样例:S 为 231,程序执行结束后的 S 为 yes。
任务五:计数
给定一个仅由 z 构成的字符串 S (1 ≤ |S| ≤ 132),将 S 替换成 z 的个数,即 |S|。
任务六:最长上升子序列(LIS)
给定一个仅由 1 ∼ 9 构成的字符串 S (1 ≤ |S| ≤ 27),将 S 替换为最长上升子序列长度。
样例:S 为 41259687899993,程序执行结束后的 S 为 7。
检验方式
下发文件中有一份sample checker.cpp,其中函数 execute(code, S) 表示传入“星语”代码
code 以及读入 S,函数返回“星语”程序结束后的 S。
注意,本 checker 不会检验您输出的正确性,只能提供“星语”的评测,且与最终实际评测的
checker 大有不同,您不需要关心最终具体的评测检验方式。
在最终测试的时候,如果“星语”程序运行时间过长,可能会导致你的程序被判定为 0 分,保 证对于每一个任务,存在一个符合条件的“星语”程序可以在 0.1s 内对所有符合条件的数据正确执 行。
时间限制:1 s
空间限制:512 MB
试题改错 1 队
~. 暗影披风
or upload files one by one: