标签: code-golf

Code Golf:字符串中的重复字符删除

挑战:按字符数计算的最短代码,用于检测和删除字符串中的重复字符.删除包括重复字符的所有实例(因此,如果您找到3个n,则所有三个必须去),并且需要保留原始字符顺序.

示例输入1:
nbHHkRvrXbvkn

示例输出1:
RrX


示例输入2:
nbHHkRbvnrXbvkn

示例输出2:
RrX

(第二个示例删除三次出现的字母;某些解决方案未能解释此问题)

(这是基于我的另一个问题,我需要以最快的方式在C#中执行此操作,但我认为它可以在各种语言中实现良好的Code Golf.)

code-golf

30
推荐指数
16
解决办法
4735
查看次数

Code Golf:1x1黑色像素

最近,我使用自己喜欢的图像编辑器制作1x1黑色像素(当您想要以便宜的方式在HTML中绘制实心框时,它可以派上用场).虽然我把它变成了单色PNG,但它却是120字节!我的意思是,那有点陡峭.120个字节. 对于一个像素.然后我将它转换为GIF,将大小减小到43个字节.好多了,但还是......

挑战

最短的图像文件或程序产生一个1x1黑像素.提交可能是:

  • 表示1x1黑色像素的图像文件.选择的格式必须能够代表比1x1更大的图像,并且不能是临时的(也就是说,它不能是您刚刚为代码高尔夫编写的图像格式).图像文件将按字节数排序.
  • 生成此类图像文件的程序.程序将按照字符数进行排名,就像在高尔夫代码中一样.

只要答案属于这两个类别中的一个,任何事情都是公平的.

此外,对于图像文件,请以十六进制或转义指定它们而不是使用外部图像主机:-)

language-agnostic code-golf image-compression rosetta-stone

30
推荐指数
7
解决办法
5194
查看次数

Palindrome高尔夫球场

目标:任何语言.最小的函数,它将返回一个字符串是一个回文.这是我的Python:

R=lambda s:all(a==b for a,b in zip(s,reversed(s)))
Run Code Online (Sandbox Code Playgroud)

50个字符.

接受的答案将是当前最小的答案 - 当发现较小的答案时,这将会改变.请指定您的代码所在的语言.

code-golf palindrome rosetta-stone

29
推荐指数
13
解决办法
6112
查看次数

代码高尔夫:数字的主要因素

根据字符数,找到任何数字的素数因子最短路径是什么?

示例输入: 1806046

示例输出: 2x11x11x17x439

示例计算器

code-golf

28
推荐指数
10
解决办法
4826
查看次数

斐波那契代码高尔夫

以尽可能少的字符生成Fibonacci序列.任何语言都可以,除了您使用一个运算符定义的语言f,它会打印斐波那契数字.

起点:25 14个字符哈斯克尔:

f=0:1:zipWith(+)f(tail f)

f=0:scanl(+)1f
Run Code Online (Sandbox Code Playgroud)

language-agnostic code-golf fibonacci rosetta-stone

27
推荐指数
16
解决办法
6150
查看次数

Code Golf:Ulam Spiral

挑战

按字符计算的最短代码输出Ulam的螺旋,螺旋尺寸由用户输入给出.

Ulam的螺旋是一种映射素数的方法.螺旋线从中间的数字1开始(1不是素数)并在其周围产生螺旋线,将所有素数标记为字符' *'.非素数将被打印为空格' '.

替代文字http://liranuna.com/junk/ulam.gif

测试用例

Input:
    2
Output:
    * *
      *
    *  

Input:
    3
Output:
    *   *
     * * 
    *  **
     *   
      *  

Input:
    5
Output:
        * *  
     *     * 
    * *   *  
       * * * 
      *  ** *
     * *     
    *   *    
     *   *   
    *     *  
Run Code Online (Sandbox Code Playgroud)

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

language-agnostic code-golf rosetta-stone

27
推荐指数
7
解决办法
4226
查看次数

通过改变一个字符来修复一个破碎的循环

我找到了一个有一些复杂的C拼图的网站.现在我正在处理这个问题:

以下是一段C代码,其目的是打印减号20次.但你可以注意到,它不起作用.

#include <stdio.h>
int main()
{
    int i;
    int n = 20;
    for( i = 0; i < n; i-- )
        printf("-");
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

修好上面的代码很简单.要使问题变得有趣,您必须通过更改一个字符来修复上述代码.有三种已知的解决方案.看看你能不能得到这三个.

我无法弄清楚如何解决.我知道它可以通过改变--来修复++,但我无法弄清楚要改变哪个单个字符才能使它工作.

c puzzle code-golf

27
推荐指数
3
解决办法
3341
查看次数

Code-Golf:友好号码缩写器

基于这个问题:有没有办法将数字转换为友好格式?

挑战 - 更新! (从规范中删除了数百个缩写)

按字符数排序的最短代码,将缩写整数(无小数).

代码应包括完整的程序.

相关范围来自0 - 9,223,372,036,854,775,807(有符号64位整数的上限).

缩写的小数位数为正数.您不需要计算以下内容:( 920535 abbreviated -1 place这可能是类似的0.920535M).

在十位和百地方(数字0-999)应永远缩写为(该号码的缩写57,以1+小数位是5.7dk-这是不必要的,而不是友好的).

记得从零开始一半(23.5四舍五入到24).银行家的舍入是禁止的.

以下是相关的数字缩写:

h = hundred (102)
k = thousand (103)
M = million (106)
G = billion (109)
T = trillion (1012)
P = quadrillion (1015)
E = quintillion (1018)

SAMPLE INPUTS/OUTPUTS(输入 …

language-agnostic code-golf number-formatting human-readable rosetta-stone

27
推荐指数
4
解决办法
7134
查看次数

Code Golf:钻石二十一点

挑战

按字符排序的最短代码从给定的数字卡列表中输出最佳案例的二十一点手.

输入是由空格分隔的1到10(含)之间的数字列表.

输出将是从该卡片列表中形成的最佳二十一点手 - 最接近的可用组合,通过所有卡值的总和达到21而不超过它.卡可以删除但不能添加.

如果需要移除两张或多张卡以支持一张卡以获得相同结果(移除5或4,1以获得21),则移除最少的卡.如果要移除相同数量的卡(移除1,4或3,2),将删除具有最小值的组(在前面的示例中,1,4将被移除为min(min(3,2), min(1,4))属于该对).在重复卡的情况下,应该删除第一次遭遇.

输出将形成为钻石卡,输入顺序保留:

 __________  __________ 
|          ||          |
|          || /\       |
|          || \/       |
|    /\    ||          |
|    \/    ||          |
|          ||       /\ |
|          ||       \/ |
|__________||__________|
 __________  __________ 
|          ||          |
| /\       || /\    /\ |
| \/       || \/    \/ |
|    /\    ||          |
|    \/    ||          |
|       /\ || /\    /\ |
|       \/ || \/    \/ |
|__________||__________|
 __________ …

language-agnostic code-golf rosetta-stone

26
推荐指数
3
解决办法
1419
查看次数

Code Golf:锯齿形图案扫描

挑战

采用单个输入整数N(N> = 3)的字符数最短的代码,并返回索引数组,迭代时将根据JPEG"zigzag"扫描模式遍历Nx N矩阵.以下是遍历8x8矩阵src的示例遍历:

之字形布局模式

例子

(中间矩阵不是输入或输出的一部分,只是输入表示的NxN矩阵的表示.)

                1 2 3
(Input) 3  -->  4 5 6  -->  1 2 4 7 5 3 6 8 9 (Output)
                7 8 9

                1  2  3  4
(Input) 4  -->  5  6  7  8  -->  1 2 5 9 6 3 4 7 10 13 14 11 8 12 15 16 (Output)
                9 10 11 12
               13 14 15 16
Run Code Online (Sandbox Code Playgroud)

笔记

  • 生成的数组的基础应该适合您的语言(例如,Matlab数组是基于1的,C++数组是基于0的).
  • 这与这个问题有关.

奖金 …

language-agnostic code-golf rosetta-stone

26
推荐指数
4
解决办法
4204
查看次数