Questions tagged «unicode»

对于涉及unicode的挑战。

3
Unicode UTF转换器
目的是在UTF FAQ中给出的官方Unicode编码之间创建完全兼容的转换器。鉴于这是以Unicode为中心的,我将使用所涉及的最佳编码来接受最低字节数的答案(除非您使用APL进行编程,否则它可能是UTF-8)。我为冗长的帖子表示歉意,但其中很多内容都在解释编码,这些编码也可以在官方规范(pdf,第3.9 D90-D92节)或Wikipedia中进行访问。。 技术指标 如果您选择的语言在任何时候都不能完全满足要求,请使用符合给定规则精神的内容代替它。例如。并非每种语言都有内置的数组,函数等。 不使用字符串库/函数或编码库/函数。此代码的重点是使用位/字节操作实现转换器。但是,允许将字符串本身以字符或字节数组的形式使用。哦,也没有执行转换的OS调用。 转换器是一个具有三个参数的函数:代表已编码输入字符串的字节数组,以及以数字表示的“输入”和“输出”编码。我们将按此UTF-8, UTF-16, UTF-16BE, UTF-16LE, UTF-32, UTF-32BE, and UTF32LE顺序任意分配从0到6的数字。无需检查数字是否为< 0或> 6,我们将假定这些参数正确。转换器将以所需的输出编码返回有效的字节数组。 我们将使用空字符(U+0000)作为字符串终止符。此后的任何内容都无关紧要。我们将假设输入数组在某处具有空字符,因此您无需进行边界检查。 根据FAQ,如果输入字节数组对其声明的编码无效,则必须发出错误信号。我们将通过以下方式之一执行此操作:使程序崩溃,引发异常,返回null或返回其前四个字节全为0的数组(以便可以U+0000在每种编码中将其识别)。 编码 必须遵循官方规范,但是Wikipedia对编码提供了很好的解释(据我认为是正确的),在这里我将对其进行总结以确保完整性。请注意,UTF-16和UTF-32具有字节序变体。 UTF-32,UTF-32LE,UTF-32BE 最简单的编码,每个代码点仅以等于其数值的4个字节进行编码。LE / BE表示字节序(小字节序/大字节序)。 UTF-16,UTF-16LE,UTF-16BE 来自的代码点U+0000 - U+FFFF以等于其数值的2个字节编码。较大的值使用一对代理进行编码,这些代理是的保留值U+D800 - U+DFFF。因此,要编码大于的点U+FFFF,可以使用以下算法(从Wikipedia中无耻地复制): 从代码点减去0x010000,剩下20位数字,范围为0..0x0FFFFF。 最高的十个位(0..0x03FF范围内的数字)被添加到0xD800,以给出第一个代码单元或前导代理,其范围为0xD800..0xDBFF [...]。 低十位(也位于0..0x03FF范围内)添加到0xDC00,以提供第二个代码单元或尾迹替代,其范围为0xDC00..0xDFFF [...]。 UTF-8 来自的代码点U+0000 - U+007F被编码为等于其数值的1个字节。从U+0080 - U+07FF他们被编码为110xxxxx 10xxxxxx,U+0800 - U+FFFF是1110xxxx 10xxxxxx 10xxxxxx,值越大11110xxx 10xxxxxx 10xxxxxx 10xxxxxx。所述x的是从代码点的数值的位。 物料清单 …

11
输出最少字符数的“ Lorem ipsum”
我记得有人说过,代码大小应该以字节为单位,而不是以字符为单位,因为可以用奇怪的Unicode字符存储信息,而这些字符没有视觉意义。 情况有多严重? 在此挑战中,您应该输出以下来自维基百科的 Lorem Ipsum文本: Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit …

1
将ASCII框图转换为Unicode
我无耻地发布了对我实际上有用的请求。任务是拍摄像这样的任意ascii框图 | +----+----+ | state A +---+ +---------+ | | +----v----+ | state B | +---------+ ...并使用unicode框绘图字符将其转换为更漂亮的内容,例如 │ ╭────┴────╮ │ state A ├───╮ ╰─────────╯ │ │ ╭────v────╮ │ state B │ ╰─────────╯ 更详细地: 仅转换+-| 字符-其他字符应保持不变 采用 装箱图灯(U + 2502)│ 方框图卧式(U + 2500)─ 方框图上下左右光弧(U + 256D)╭ 方框图上下左右光弧(U + 256E)╮ 方框图向上和向左轻弧(U + …

28
讲解Revu'a
其实不是没有灵感阿特巴希密码自回文也不由广义GEMATRIA计算器。 如果给定字符串š长度的Ñ,输出Revu'a序列,这是第一个字符小号,中前两个字符小号,...第一Ñ -2字符小号,第一Ñ -1的字符小号,整个小号。 该字符串将仅包含方向性强且范围在0x0000到0xFFFF之间的Unicode(所需的任何编码)字符。但是,不会出现方向控制字符。任何给定字符串中的所有字符将具有相同的方向性。 您可以数组符号的形式返回["t","te","tes","test"],以空格分隔的字符串"t te tes test",以多行文本的形式返回ttetestest(预格式化的数组)的形式返回Ť te 特斯 测试或类似的内容。前导,分隔和尾随空格的数量并不重要,尾随换行符也不重要。询问是否有疑问。 从右至左输入必须以正确的顺序产生从右至左输出: 输入:"נחמן" 输出:"נ נח נחמ נחמן"或נ נח נחמ נחמן 或["נ","נח","נחמ","נחמן"]。在无效的结果是"נחמן נחמ נח נ","ן מן חמן נחמן"和"נחמן חמן מן ן"。

5
当前的十二生肖是什么?
根据给定国家/地区显示给定时间东部生肖的表情符号。 东部十二生肖是一种分类方案,它将动物及其知名的属性分配给重复的12年周期中的每一年。它也分配给小时。 规则: 必须使用ISO 3166-1 alpha-3代码指定国家/地区。清单在这里。 输入格式必须是这样的:<ISO code> HH:MM。输入必须是单个字符串。任何不适合此格式的输入均属于无关情况。 如果给定时间在以下给定图表的边界内,则可以输出任一个十二生肖。 因为这是代码高尔夫,所以以字节为单位的最短代码获胜。 黄道十二宫: 没有指定国家/地区的黄道带是默认设置。 第一个十二生肖(23:00 – 01:00): 🐀(U + 1F400) 波斯(IRN)的Mouse🐁(U + 1F401) 第二个十二生肖(01:00 – 03:00): 牛🐂(U + 1F402) 越南(VNM)的水牛(U + 1F403) 波斯的(U + 1F404) 第三十二生肖(03:00 – 05:00): 虎🐅(U + 1F405) 波斯豹(U + 1F406) 第四十二生肖(05:00 – 07:00): 兔子🐇(U + 1F407) 越南的猫🐈(U …

16
最高和弦
最高和弦 给定输入字符串,请返回其每个Unicode字符的总和最高的单词。 规则 输入应以空格分隔 每个单词的值基于单词的UTF-16代码中每个字符的总和 输出应该是具有最高值的第一个单词(如果有重复的总和) 例子 Input: "a b c d e" Output: "e" Input: "hello world" Output: "world" Input: "this is a test" Output: "test" Input: "àà as a test" Output: "àà" Input "α ää" Output: "α" Input: "🍬 隣隣隣" Output: "隣隣隣" Input: "💀 👻 🤡 🦇 🕷️ …

16
打印真实的不可见文本
我以前的挑战是“ 打印不可见文本”非常流行,这可能是因为它太琐碎了。 但是,那些更细心的人可能已经注意到您并不是真正在打印不可见的文本,因为仅给出输出就无法读取输入的内容。 因此,我想到了真正的隐形文本挑战。 给出只由可打印的ASCII字符(串0x20-0x7E),每个字符转换为一个不同的Unicode字符(以UTF-8编码)不属于95个可打印的ASCII字符中的一个(任UTF-8字符以外0x20-0x7E的范围) 输入值 一串可打印的ASCII字符,可以是字符串,也可以是字符数组/列表 输出量 每个字符的输入字符串均替换为不同的不可打印字符。每个给定字符都必须具有一个相应的不可打印字符,该字符不可替代任何其他字符。 如果无法打印不可打印的字符,则可以输出字符值。 例如,如果您的代码将所有小写字母替换a为0x01,则您不能将其0x01用作其他任何字符的替换。 您的代码也必须是确定性的。这意味着,如果给定string Hello,所有小写字母l都替换为0x03,则您的代码也必须l使用0x03给定的任何其他字符串替换所有小写字母。 测试用例 为此挑战编写测试用例有些困难,因此我将输出显示为十六进制代码列表 input -> output "Hello" -> [0x01, 0x02, 0x03, 0x03, 0x04] "Hi!" -> [0x01, 0x05, 0x06] "" -> [] " H " -> [0x07, 0x07, 0x07, 0x01, 0x07, 0x07, 0x07] "yo! " -> [0x08, 0x04, 0x06, …

30
创建一个鹦鹉程序
给定输入,输出该输入,然后不断地换行。 输入将是仅由可打印的ASCII字符(0x20-0x7E)和换行符(0x0A)组成的字符串。 如果输入长度为0,则不断输出换行符。 这是代码高尔夫球,因此每种语言中最少的字节会获胜!
15 code-golf  string  sequence  combinatorics  fastest-code  number  code-challenge  restricted-source  rosetta-stone  code-golf  arithmetic  decision-problem  integer  factorial  code-golf  arithmetic  decision-problem  integer  bitwise  code-golf  kolmogorov-complexity  code-golf  tips  vim  code-golf  quine  code-generation  code-golf  string  restricted-source  code-golf  string  random  unicode  code-golf  audio  code-golf  ascii-art  code-golf  decision-problem  code-golf  puzzle-solver  code-golf  restricted-source  code-golf  kolmogorov-complexity  permutations  hexagonal-grid  code-golf  string  math  combinatorics  fastest-code  code-golf  restricted-source  code-golf  string  code-golf  arithmetic  code-golf  math  number  code-golf  string  decision-problem  balanced-string  code-golf  binary  code-golf  string  number  code-challenge  restricted-source  code-golf  ascii-art  printable-ascii  interactive  code-golf  string  ascii-art  code-challenge  restricted-source  source-layout  code-golf  arithmetic  tips  functional-programming  golfing-language  code-golf  binary  encryption 

10
将CSV转换成表格
挑战 给定CSV输入,请使用框字符输出适当的unicode表。 格式化 该表将使用以下规则进行格式化: 列宽将等于该列的最长值 所有表格数据将保持对齐 每个表将假定第一csv行为标题 该表格的边框将使用以下字符: ┌ ┬ ┐ ├ ┼ ┤ └ ┴ ┘ ─ │ 例 Input: Name,Age,Gender Shaun,19,Male Debra,19,Female Alan,26,Male George,15,Male Output: ┌──────┬───┬──────┐ │Name │Age│Gender│ ├──────┼───┼──────┤ │Shaun │19 │Male │ │Debra │19 │Female│ │Alan │26 │Male │ │George│15 │Male │ └──────┴───┴──────┘ 规则 适用标准漏洞 您可以提交完整的程序,函数或lambda 输入可以来自文件,程序参数或任何可接受的替代方法 …

3
标记基于堆栈的语言
我一直在研究另一种称为Stackgoat的基于堆栈的高尔夫语言。在这个挑战中,您将为Stackgoat(或实际上是任何通用的基于堆栈的语言)编写Tokenizer。 例子 "PPCG"23+ ["PPCG", '23', '+'] 'a "bc" + ['"a"', '"bc"', '+'] 12 34+-"abc\"de'fg\\" ['12', '34', '+', '-', '"abc\"de'fg\\"'] "foo ['"foo"'] (empty input) [] ' "" ['" "', '""'] 规格 您需要处理的三种类型是: 弦乐,什么内"" 数字,任何数字序列 运算符,除空格外的任何其他单个字符 除非将其留在字符串中或将两个数字分隔开,否则实际上将忽略空格。 字符串/字符规范: 字符串以分隔",当\遇到时,下一个字符应转义。 字符前面加a ',后面的字符'应转换为字符串文字。'a->"a" ' 后面总会有一个角色 右引号应自动插入 规则: 没有形式eval允许 输入输出: 可以通过STDIN,函数参数或您的语言等效输入。 输出应为数组或您的语言最接近的等效数组。
15 code-golf  parsing  code-golf  hexagonal-grid  code-golf  string  code-golf  string  code-golf  combinatorics  code-golf  ascii-art  code-golf  string  game  counting  code-golf  arithmetic  complex-numbers  code-golf  string  code-golf  decision-problem  hexagonal-grid  code-golf  string  sequence  code-golf  number  arithmetic  code-golf  ascii-art  code-golf  ascii-art  code-golf  string  arithmetic  code-golf  number  simulation  code-golf  number  arithmetic  code-golf  string  sequence  unicode  code-golf  string  ascii-art  balanced-string  code-golf  number  clock  code-golf  ascii-art  number  code-golf  math  number  sequence  code-golf  string  ascii-art  balanced-string  code-golf  math  string  popularity-contest  graphical-output  image-processing  code-golf  string  permutations  code-golf  string  code-golf  random  code-golf  string  cryptography  palindrome  code-golf  chess  code-golf  math  array-manipulation  topology  code-golf  math  sequence  code-golf  keyboard  classification  code-golf  string  sequence  code-golf  natural-language  code-golf  math  number  sequence  sorting  code-golf  sequence  combinatorics  grid  tic-tac-toe  code-golf  geometry  code-golf  number  restricted-source  new-years  expression-building 

15
手动逻辑门
编写一个模拟基本逻辑门的程序。 输入:一个全大写单词,后跟2个1位二进制数字,以空格分隔,例如OR 1 0。门OR,AND,NOR,NAND,XOR,和XNOR需要。 输出:输入的逻辑门的输出将被赋予两个数字:1或0。 例子: AND 1 0成为0 XOR 0 1变得1 OR 1 1成为1 NAND 1 1成为0 这是codegolf,所以最短的代码获胜。
13 code-golf  logic-gates  hashing  code-golf  code-golf  number  array-manipulation  integer  code-golf  string  unicode  text-processing  cops-and-robbers  boggle  cops-and-robbers  boggle  code-golf  ascii-art  code-golf  word-puzzle  king-of-the-hill  python  code-golf  sequence  kolmogorov-complexity  code-golf  source-layout  code-golf  string  kolmogorov-complexity  math  number  code-golf  date  code-golf  combinatorics  recursion  game  king-of-the-hill  javascript  code-golf  array-manipulation  code-golf  radiation-hardening  self-referential  code-golf  integer  code-golf  number  code-golf  set-theory  code-golf  sequence  code-golf  string  sorting  natural-language  code-golf  decision-problem  number-theory  primes  code-golf  code-golf  ascii-art  code-challenge  array-manipulation  sorting  rubiks-cube  regular-expression  code-golf  counting  file-system  recursion  code-golf  string  kolmogorov-complexity  color  code-golf  game  code-challenge  permutations  encode  restricted-time  decode  code-golf  math  decision-problem  matrix  integer  palindrome  code-golf  matrix  statistics  king-of-the-hill  king-of-the-hill  python  card-games  code-golf  string  natural-language  code-golf  sequence  number-theory 

5
Unicode现在几点钟了?
给定输入时间为以下任何一种格式的字符串,挑战是简单化的: hh,hh:mm或hh:mm:ss有0 ≤ hh ≤ 23,0 ≤ mm ≤ 59和0 ≤ ss ≤ 59。 使用以下符号输出当前几点钟: AA LABEL FOR CHARACTER CODE POINT HEXADECIMAL == ==================== ========== =========== 🕐 Clock Face 01 Oclock 128336 0x1F550 🕑 Clock Face 02 Oclock 128337 0x1F551 🕒 Clock Face 03 Oclock 128338 0x1F552 🕓 Clock Face …

3
音位错误
性格 我们将这些Unicode字符称为英语IPA辅音: bdfhjklmnprstvwzðŋɡʃʒθ 我们将这些Unicode字符称为 英语IPA元音: aeiouæɑɔəɛɜɪʊʌː (是的,ː这只是长元音标记,但出于此挑战的目的,请将其视为元音。) 最后,这些是主要和次要压力标记: ˈˌ 注意,ɡ(U + 0261)不是小写的g,主应力标记ˈ(U + 02C8)不是撇号,并且ː(U + 02D0)不是冒号。 你的任务 给出一个单词,将元音堆叠在跟随的辅音之上,并将重音标记放置在其跟随的辅音下方。(正如问题标题所暗示的,这样的书写系统将辅音元音序列作为一个单元打包在一起,称为abugida。)给定输入ˈbætəlʃɪp,产生输出: æə ɪ btlʃp ˈ 甲字被保证是声母,韵母和应力标记的字符串,如上面所定义。永远不会有连续的重音标记,它们将始终放置在单词的开头和/或辅音之前。 测试用例 可能有连续的元音。例如,kənˌɡrætjʊˈleɪʃən变为 ɪ ə æ ʊeə knɡrtjlʃn ˌ ˈ 如果一个词以元音开头,打印在“基线”与辅音:əˈpiːl变 ː i əpl ˈ 一个测试用例的初始,强调元音:ˈælbəˌtrɔs变 ə ɔ ælbtrs ˈ ˌ 一句话:ˌsuːpərˌkaləˌfrædʒəˌlɪstɪˌkɛkspiːæləˈdoʊʃəs变成 æ ː ː ʊ uə aə …

5
广义Gematria计算器
为任何给定的Unicode字符序列(如字母)创建一个双向Gematria计算器。 Gematri-什么? Gematria是一种为符号分配数值的系统,该系统由古希腊人开发并由古代犹太人采用。它采用类似于ASCII或Unicode的方式,只是非线性的。请参见下表(完整的表可在上面的链接中找到): Index Letter Letter name Value -------------------------- 0 א "Alef" 1 1 ב "Bet" 2 ... 8 ט "Tet" 9 9 י "Yud" 10 10 כ "Kaf" 20 ... 17 צ "Tsady" 90 18 ' "Kuf" 100 19 ר "Resh" 200 ... 字母的名称并不重要,只是字母在字母“数组”中的索引以及相应的数值。希伯来字母只有22个字母(不包括“最终”字母),因此最大可用值为400。 如果我们将此系统借用到英语字母(AZ),我们将得到A = 1,B = 2 …

3
Unicode矩形
给定 a来自的字符矩阵u=" ╶╺╵└┕╹┖┗╴─╼┘┴┶┚┸┺╸╾━┙┵┷┛┹┻╷┌┍│├┝╿┞┡┐┬┮┤┼┾┦╀╄┑┭┯┥┽┿┩╃╇╻┎┏╽┟┢┃┠┣┒┰┲┧╁╆┨╂╊┓┱┳┪╅╈┫╉╋" 子矩阵作为坐标x,y,w,h(左,上,宽度> 1,高度> 1) 厚度t为1(如┌)或2(如┏) 考虑到现有线,以指定的粗细渲染子矩阵的内部边界。 x=4;y=1;w=2;h=3;t=2; a=[' ┌───┐', '┌┼┐ │', '│└┼──┘', '└─┘ '] // output r=[' ┌───┐', '┌┼┐ ┏┪', '│└┼─╂┨', '└─┘ ┗┛'] 覆盖线段时,新的厚度应大于旧的厚度和t。 这不是关于输入解析或找到统一的柯尔莫哥洛夫复杂性,所以你可以假设a,u,x,y,w,h,t是提供给您的变量。另外,您可以将结果放入变量中,r而不是返回或输出它,只要它r的类型与相同即可a。 如果您的语言强迫您将代码放入函数(C,Java,Haskell等)中,并且您的解决方案由单个函数组成,则可以省略函数的页眉和页脚。 更大的测试: x=4;y=1;w=24;h=4;t=1; a=['┏┱─────┐ ┌┐ ┎──┲━┓', '┠╂─────┘ ││ ┃ ┗━┛', '┃┃ ││ ┃ ', '┠╂──┲━━┓ ┏━━━━┓ ││ ┌╂┰┐ ', '┃┃ ┗━━┩ ┃ ┃ …

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.