挑战
在此挑战中,您必须根据输入的顺序执行两个不同(但相关)的任务。
您的程序将接收一个字符串s
和一个整数n
作为输入,并将
- 分裂
s
成长度的片段n
,如果s
是第一位。如果需要,最后一个元素将更短。 - 分割
s
成n
相等长度的块,如果n
是第一位。如果len(s)
不是,n
则第一个len(s) mod n
元素的倍数将更长。
您只能接受这2个输入。s
永远不会只包含数字。
笔记
- 您可以使用反向映射。如果这样做,请在您的答案中注明。
s
将仅包含可打印的ASCII字符(无换行符)。- 您可能不使用任何直接解决这两个任务的内置程序。允许所有其他内置程序。
- 您必须从同一来源获得两个参数。
- 您可以采用有序列表或其他任何可以清楚表明其顺序的格式来表示参数,只要它们是明确的即可。
- 您可以将输入作为一个字符串/流,并使用不是有效输入的字符(如空字节)来分隔它们。
n
将始终等于或小于长度s
且大于零。- 您可以以任何合理的格式输出结果列表,只要它能清楚表明特定的部分及其顺序即可。
例
输入: programming, 3
最后一个元素仅包含2个字符,因为11不能被3整除。
输出: ["pro", "gra", "mmi", "ng"]
输入: 3, programming
11不是3的倍数,因此前2个元素将更长:
输出: ["prog", "ramm", "ing"]
规则
测试用例
该Pyth程序生成了测试用例(使用内置函数,因此没有有效答案)。感谢@FryAmTheEggman提供的基本版本!
3,helloworld-> ['hell','owo','rld'] helloworld,3-> ['hel','low','orl','d'] 1,编程-> ['编程'] 编程,1-> ['p','r','o','g','r','a','m','m','i','n','g'] 8,编程-> ['pr','og','ra','m','m','i','n','g'] 编程,8-> ['programm','ing'] 9,代码高尔夫-> ['c','o','d','e',','g','o','l','f'] 代码高尔夫,9-> ['代码高尔夫'] 4,133峰值-> ['133','ts','pe','ak'] 133峰值,4-> ['133t','spea','k']
编码愉快!