gpt4 book ai didi

language-agnostic - Code Golf : Code 39 Bar Code

转载 作者:行者123 更新时间:2023-12-03 10:21:31 30 4
gpt4 key购买 nike

锁定。这个问题及其答案是locked因为这个问题是题外话,但具有历史意义。它目前不接受新的答案或互动。








挑战

按字符计数绘制 Code 39 条码的 ASCII 表示的最短代码。

维基百科关于代码 39 的文章:http://en.wikipedia.org/wiki/Code_39

输入

输入将是 Code 39 条码的合法字符字符串。这意味着 43 个字符有效:0 - 9 A - Z (空格)和 -.$/+% . *字符不会出现在输入中,因为它被用作开始和停止字符。

输出

Code 39 条码中编码的每个字符都有九个元素、五个条和四个空格。条形将用 # 表示字符,空格将用空格字符表示。九个元素中的三个将是宽的。窄元素将是一个字符宽,而宽元素将是三个字符宽。每个字符模式之间应添加单个空格的字符间空格。应重复该图案,使条码的高度为 8 个字符高。

开始/停止字符 * (bWbwBwBwb) 表示如下:

                       #   # ### ### # 
# # ### ### #
# # ### ### #
# # ### ### #
# # ### ### #
# # ### ### #
# # ### ### #
# # ### ### #
^ ^ ^^ ^ ^ ^ ^^^
| | || | | | |||
narrow bar -+ | || | | | |||
wide space ---+ || | | | |||
narrow bar -----+| | | | |||
narrow space ------+ | | | |||
wide bar --------+ | | |||
narrow space ----------+ | |||
wide bar ------------+ |||
narrow space --------------+||
narrow bar ---------------+|
inter-character space ----------------+
  • 开始和停止字符 *需要在条码的开头和结尾处输出。
  • 在条形码之前或之后不需要包括安静的空间。
  • 无需计算校验位。
  • 不需要完整的 ASCII Code39 编码,只需要标准的 43 个字符。
  • 不需要在 ASCII 条形码表示下方打印文本来识别输出内容。
  • 人物#如果需要,可以用另一个更高密度的字符替换。使用完整的块字符 U+2588,将允许条码在打印时实际扫描。

  • 测试用例
    Input:
    ABC
    Output:
    # # ### ### # ### # # # ### # ### # # ### ### ### # # # # # ### ### #
    # # ### ### # ### # # # ### # ### # # ### ### ### # # # # # ### ### #
    # # ### ### # ### # # # ### # ### # # ### ### ### # # # # # ### ### #
    # # ### ### # ### # # # ### # ### # # ### ### ### # # # # # ### ### #
    # # ### ### # ### # # # ### # ### # # ### ### ### # # # # # ### ### #
    # # ### ### # ### # # # ### # ### # # ### ### ### # # # # # ### ### #
    # # ### ### # ### # # # ### # ### # # ### ### ### # # # # # ### ### #
    # # ### ### # ### # # # ### # ### # # ### ### ### # # # # # ### ### #
    Input:
    1/3
    Output:
    # # ### ### # ### # # # ### # # # # # ### ### # # # # # ### ### #
    # # ### ### # ### # # # ### # # # # # ### ### # # # # # ### ### #
    # # ### ### # ### # # # ### # # # # # ### ### # # # # # ### ### #
    # # ### ### # ### # # # ### # # # # # ### ### # # # # # ### ### #
    # # ### ### # ### # # # ### # # # # # ### ### # # # # # ### ### #
    # # ### ### # ### # # # ### # # # # # ### ### # # # # # ### ### #
    # # ### ### # ### # # # ### # # # # # ### ### # # # # # ### ### #
    # # ### ### # ### # # # ### # # # # # ### ### # # # # # ### ### #
    Input:
    - $ (minus space dollar)
    Output:
    # # ### ### # # # # ### ### # ### # ### # # # # # # # # ### ### #
    # # ### ### # # # # ### ### # ### # ### # # # # # # # # ### ### #
    # # ### ### # # # # ### ### # ### # ### # # # # # # # # ### ### #
    # # ### ### # # # # ### ### # ### # ### # # # # # # # # ### ### #
    # # ### ### # # # # ### ### # ### # ### # # # # # # # # ### ### #
    # # ### ### # # # # ### ### # ### # ### # # # # # # # # ### ### #
    # # ### ### # # # # ### ### # ### # ### # # # # # # # # ### ### #
    # # ### ### # # # # ### ### # ### # ### # # # # # # # # ### ### #

    代码计数包括输入/​​输出(完整程序)。

    最佳答案

    J, 102 个字符

    8#,:' #'{~,0,.~#:(3 u:'䝝啕啕啕䑅儑啕啕啕啕䗝䔑啕䕷煝䑑凝瑗屗眕凗瑵屵具瑝屝啕啕啕啕啕啕啕甗崗睅圗病巅呷甝崝圝畇嵇睑均痑巑嗇畱嵱坱煗䝗燕䗗煵䝵'){~32-~a.i.'*'(,,[)

    解释。从下往上读。:
    8#,:         NB. Copy 8 times
    ' #'{~ NB. Turn binary 0 and 1 into space and #
    , NB. Link the array into a list
    0,.~ NB. Append a 0 to the end of each row of the array.
    #: NB. Turn the list of numbers into a binary array where each row is the base-2 representation of the corresponding number
    (3 u:'䝝啕啕啕䑅儑啕啕啕啕䗝䔑啕䕷煝䑑凝瑗屗眕凗瑵屵具瑝屝啕啕啕啕啕啕啕甗崗睅圗病巅呷甝崝圝畇嵇睑均痑巑嗇畱嵱坱煗䝗燕䗗煵䝵') NB. Turn this wchar string into a list of ints in range 0-65535.
    {~ NB. Select numbers from the string-list whose indices are...
    32-~ NB. ... 32 less than ...
    a.i. NB. ... the ascii values of ...
    '*'(,,[) NB. ... the input string with a '*' on either side!

    关于language-agnostic - Code Golf : Code 39 Bar Code,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2800073/

    30 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com