您是否不喜欢将机器或物体分解成最小零件的那些分解图?
让我们来做一个字符串!
挑战
编写一个程序或函数
- 输入仅包含可打印ASCII字符的字符串;
- 将字符串分解为非空格等号字符组(字符串的“段”);
- 以任何方便的格式输出这些组,并在组之间使用一些分隔符。
例如,给定字符串
Ah, abracadabra!
输出将是以下几组:
! , 一种 aa bb C d H rr
输出中的每个组均包含相等的字符,并删除了空格。换行符已用作组之间的分隔符。以下是有关允许格式的更多信息。
规则
该输入应该是一个字符串或字符数组。它仅包含可打印的ASCII字符(包括从空格到波浪号的范围)。如果您的语言不支持,则可以采用代表ASCII码的数字形式的输入。
您可以假定输入至少包含一个非空格字符。
的输出应包括字符(即使输入是由ASCII码装置)。组之间必须有明确的分隔符,与输入中可能出现的任何非空格字符不同。
如果输出是通过函数返回,则它也可以是一个数组或字符串,或一个字符数组的数组,或类似的结构。在这种情况下,结构可提供必要的分隔。
每组字符之间的分隔符是可选的。如果有一个,则应用相同的规则:输入中不能出现非空格字符。此外,它不能与组之间使用的分隔符相同。
除此之外,格式是灵活的。这里有些例子:
组可能是用换行符分隔的字符串,如上所示。
这些组可以用任何非ASCII字符分隔,例如
¬
。上述输入的输出将是字符串:!¬,¬A¬aaaaa¬bb¬c¬d¬h¬rr
这些组可以用n > 1个空格分隔(即使n是可变的),每个组之间的字符也用一个空格分隔:
! , A a a a a a b b c d h r r
输出也可以是函数返回的数组或字符串列表:
['!', 'A', 'aaaaa', 'bb', 'c', 'd', 'h', 'rr']
或char数组的数组:
[['!'], ['A'], ['a', 'a', 'a', 'a', 'a'], ['b', 'b'], ['c'], ['d'], ['h'], ['r', 'r']]
根据规则,不允许使用的格式示例:
- 逗号不能用作分隔符(
!,,,A,a,a,a,a,a,b,b,c,d,h,r,r
),因为输入内容可能包含逗号。 - 不允许在组(
!,Aaaaaabbcdhrr
)之间放置分隔符,或在组之间和组内使用相同的分隔符(! , A a a a a a b b c d h r r
)。
这些组可以以任何顺序出现在输出中。例如:字母顺序(如上述示例中所示),字符串中首次出现的顺序,...顺序不必是一致的甚至是确定性的。
请注意,输入内容不能包含换行符,A
并且a
它们是不同的字符(分组是区分大小写的)。
以字节为单位的最短代码获胜。
测试用例
在每个测试用例中,第一行是输入,其余行是输出,每组都在不同的行中。
测试用例1:
啊,阿布拉卡达布拉! ! , 一种 aa bb C d H rr
测试案例2:
\ o / \ o / \ o / /// \\\ oo
测试案例3:
一个人,一个计划,一条运河:巴拿马! ! ,, : 一种 P aaaaaaaaa C 二 毫米 nnnn p
测试案例4:
她说:“告诉我你是怎么做到的,那个让我尖叫的方法。” ” , 小号 aa 抄送 dd ee h ii kk 毫米 ñ oo rr ssss tttttt ü w ÿ