Twitter文本压缩挑战

Bra*_*ert 7 compression unicode twitter code-golf

规则

  1. 您的程序必须有两种模式:编码解码.
  2. 编码:

    1. 您的程序必须将一些人类可读的Latin1文本作为输入,大概是英语.
      • 忽略标点符号无关紧要.
      • 你只需要担心实际的英语单词,而不是L337.
      • 任何带重音的字母都可以转换为简单的ASCII.
      • 您可以选择如何处理数字.
      • 123
        • 一二三
        • 一百二十三
        • 123
        • 1 2 3
      • 一百二十三
        • 一二三
        • 一百二十三
        • 123
        • 1 2 3
    2. 您的程序必须输出可以表示的消息

      • 范围内的140个代码点U+0000-U+10FFFF

        排除非字符:

        • U+FFFE
        • U+FFFF
        • U+nFFFE,这里是- 十六进制U+nFFFFn110
        • U+FDD0- U+FDEF
        • U+D800- U+DFFF(代理代码点).

    它可以以您选择的任何合理编码输出; GNUiconv支持的任何编码都被认为是合理的,您的平台本机编码或区域编码可能是一个不错的选择.

  3. 解码:

    1. 您的程序应该将编码模式的输出作为输入.
    2. 文本输出应该是输入文本的近似值.
      • 你越接近原始文本越好.
      • 不需要任何标点符号.
    3. 输出文本应该是人类可读的,也可能是英语.

      • 可以是L337,或者lol.
    4. 除了上面指定的输出之外,解码过程可能无法访问编码过程的任何其他输出; 也就是说,您无法在某处上传文本并输出用于下载的解码过程的URL,或者类似的任何内容.
  4. 为了用户界面的一致性,您的程序必须按如下方式运行:
    1. 您的程序必须是可以在具有相应解释器的平台上设置为可执行的脚本,或者可以编译为可执行文件的程序.
    2. 您的程序必须作为其第一个参数encodedecode设置模式.
    3. 您的程序必须至少通过以下方式之一获取输入:
      • 从标准输入获取输入并在标准输出上产生输出.
        • my-program encode <input.txt >output.utf
        • my-program decode <output.utf >output.txt
      • 从第二个参数中指定的文件中获取输入,并在第三个参数中指定的文件中生成输出.
        • my-program encode input.txt output.utf
        • my-program decode output.utf output.txt
  5. 对于您的解决方案,请发布:
    1. 你的代码,完整的,和/或在其他地方托管的链接(如果它很长,或者需要很多文件来编译,或者其他东西).
    2. 解释它是如何工作的,如果代码中不是很明显,或者代码很长,人们会对摘要感兴趣.
    3. 示例文本,包含原始文本,压缩到的文本以及解码文本.
    4. 如果您的想法是基于其他人的想法,请归因于他们.尝试改进别人的想法是可以的,但你必须归因于他们.

规则是Twitter图像编码挑战规则的变体.

Cam*_*tin 0

PAQ8O10T << FTW