介绍
在帕森斯的代码只是为了说明一个简单的方法的音调变化在一段音乐,音符是否高于或低于前一个低。
即使您乐于记住音乐,您仍然可以很清楚地记起音符的高低,因此,帕森斯代码可以帮助您使用搜索引擎识别音乐。
描述
每个变体都由单个字符表示,该字符是以下之一:
R
如果该音符与上一个音符相同(代表“ R epeat”)U
如果该音符高于上一个音符(代表“ U p”)D
如果该音符低于上一个音符(代表“ D拥有”)
首字母写为*
。
例
这是帕森斯代码的示例(“欢乐颂”的开头):
*RUURDDDDRUURDR
您实际上可以将其可视化,如下所示:
*-*
/ \
* *
/ \
*-* * *-*
\ / \
* * *-*
\ /
*-*
从现在开始,我们将其称为轮廓。
上面的示例认为绘制此类国家的规则是不言自明的。
挑战
现在是真正的挑战。
编写一个程序,以轮廓为输入,输出其相应的帕森斯代码。
不要求您绘制轮廓,但实际上是相反。
从轮廓中找到原始的帕森斯代码。
规则
- 打高尔夫球的通常规则适用
- 字节数最短的程序获胜
- 输入为轮廓,输出为有效的帕森斯码
- 与输入的多余空格有关的细节无关紧要,尽一切可能为您效劳
- 由于前面的规则,不允许您使用额外的空格对输出和/或程序的部分内容进行一种或另一种硬编码。
笔记
- 这可能对测试有用
- 对应的帕森斯代码
*
是*
- 空字符串不是有效的轮廓
- 帕森斯代码始终以
*
*
什么都不做开始?
*
什么时候?不。*
我猜应该打印出来。我将添加这个特殊情况。
*
。总是。