【发布时间】:2010-11-04 02:19:50
【问题描述】:
规则
- 您的程序必须有两种模式:编码和解码。
-
编码时:
- 您的程序必须将一些人类可读的
Latin1文本作为输入,可能是英文。- 忽略标点符号也没关系。
- 您只需要担心实际的英文单词,而不是 L337。
- 任何重音字母都可以转换为简单的 ASCII。
- 您可以选择处理数字的方式。
- 123
- 一二三
- 一百二十三
- 123
- 1 2 3
- 一百二十三
- 一二三
- 一百二十三
- 123
- 1 2 3
-
您的程序必须输出一条可以用以下形式表示的消息
-
U+0000–U+10FFFF范围内的 140 个代码点排除非字符:
U+FFFEU+FFFF-
U+nFFFE,U+nFFFF其中n是1–@ 987654337@十六进制 -
U+FDD0–U+FDEF -
U+D800–U+DFFF(代理代码点)。
-
它可以以您选择的任何合理编码输出; GNU
iconv支持的任何编码都将被认为是合理的, 并且您的平台本机编码或语言环境编码可能是一个不错的选择。 - 您的程序必须将一些人类可读的
-
解码时:
- 您的程序应将 编码 模式的输出作为输入。
- 文本输出应该是输入文本的近似值。
- 越接近原文越好。
- 不需要任何标点符号。
-
输出文本应该是人类可读的,同样可能是英语。
- 可以是 L337,也可以是大声笑。
- 解码过程可能无法访问编码过程的任何其他输出 上述指定的输出除外; 也就是说,您无法将文本上传到某处并输出URL 用于下载解码过程,或任何类似的傻事。
- 为了用户界面的一致性,您的程序必须表现如下:
- 您的程序必须是一个脚本,可以设置为在具有适当解释器的平台上执行, 或者可以编译成可执行文件的程序。
- 您的程序必须将
encode或decode作为其第一个参数来设置模式。 - 您的程序必须至少以下列方式之一接收输入:
- 从标准输入中获取输入并在标准输出中产生输出。
my-program encode <input.txt >output.utfmy-program decode <output.utf >output.txt
- 从第二个参数命名的文件中获取输入,并在第三个参数命名的文件中生成输出。
my-program encode input.txt output.utfmy-program decode output.utf output.txt
- 从标准输入中获取输入并在标准输出中产生输出。
- 对于您的解决方案,请发布:
- 您的完整代码和/或托管在其他地方的链接 (如果它很长,或者需要编译很多文件,等等)。
- 如果不能从代码中立即看出,则说明其工作原理 或者如果代码很长并且人们会对摘要感兴趣。
- 示例文本,包含原始文本、压缩后的文本以及解码后的文本。
- 如果您正在构建其他人的想法,请注明出处。 尝试对他人的想法进行改进是可以的,但您必须归因于他们。
这些规则是 Twitter image encoding challenge 规则的变体。
【问题讨论】:
-
SMAZ (github.com/antirez/smaz/tree/master) + BASE64 - 我赢了什么?
-
请将此设为社区 Wiki。你有一些未决的接近投票,大概是因为它不是。
-
投票重新开放,假设布拉德吉尔伯特将成为这个社区维基
-
也许应该有一种投票方式将问题变成社区 wiki,就像您可以投票关闭问题一样。
-
那么,这些是正确的英文句子吗? abbr txt 说话?大声笑?只有英文单词?或者这些是真正的任意 LATIN1 文本字符串?
标签: unicode twitter compression code-golf