C, คะแนน 2, 747 720 662 ไบต์
L [ 1 << 7 ] , * q , * r , l , d , i , c , j , s , t , k = 1 << 7 ; h ( ) { q = s + i + j ++ ; * q % k && ! L [ * q % k ] ++ && h ( ++ c ) ; } g ( ) { q = s + i ; * q % k ? z ( k ) , h ( j = c = 0 ) , c > d && ( d = c ) && ( l = i ) , g ( ++ i ) : 0 ; } f ( S , T ) { s = S ; l = i = d = 0 ; g ( t = T ) ; p ( i = 0 ) ; } p ( ) { q = s + l + i ; r = t + i ; i ++ < d ? p ( * r = * q ) : ( * r = 0 ) ; } z ( i ) { L [ -- i ] = 0 ; i && z ( i ) ; }
ทำงานอย่างน้อยใน MinGW แบบ 32 บิต (เมื่อปิดใช้งานการปรับให้เหมาะสม) ไม่ใช้คำหลักเดียว
ใช้งานได้กับ TIO ด้วย gcc และ clang ด้วย: ลองออนไลน์! (ขอบคุณ @Dennis!)
โทรด้วย:
int main()
{
char str[1024];
f("Good morning, Green orb!", str);
puts(str);
f("fffffffffff", str);
puts(str);
f("oiiiiioiiii", str);
puts(str);
f("1234567890", str);
puts(str);
f("L [ 1 << 7 ] , * q , * r , l , d , i , c , j , s , t , k = 1 << 7 ; h ( ) { q = s + i + j ++ ; * q % k && ! L [ * q % k ] ++ && h ( ++ c ) ; } g ( ) { q = s + i ; * q % k ? z ( k ) , h ( j = c = 0 ) , c > d && ( d = c ) && ( l = i ) , g ( ++ i ) : 0 ; } f ( S , T ) { s = S ; l = i = d = 0 ; g ( t = T ) ; p ( i = 0 ) ; } p ( ) { q = s + l + i ; r = t + i ; i ++ < d ? p ( * r = * q ) : ( * r = 0 ) ; } z ( i ) { L [ -- i ] = 0 ; i && z ( i ) ; }");
puts(str);
}
เอาท์พุท:
รหัสที่มีการจัดรูปแบบที่สามารถอ่านได้เล็กน้อย:
L[1<<7],
*q, *r, l, d, i, c, j, s, t, k=1<<7;
h()
{
q = s+i+j++;
*q%k && !L[*q%k]++ && h(++c);
}
g()
{
q = s+i;
*q%k ? z(k), h(j=c=0), c>d && (d=c) && (l=i), g(++i) : 0;
}
f(S, T)
{
s = S;
l = i = d = 0;
g(t=T);
p(i=0);
}
p()
{
q = s+l+i;
r = t+i;
i++<d ? p(*r=*q) : (*r=0);
}
z(i)
{
L[--i] = 0;
i && z(i);
}
และสิ่งนี้สามารถใช้เพื่อสร้างระยะห่างที่เหมาะสมเพื่อไปที่การจัดรูปแบบด้วยคะแนน 2: ลองออนไลน์!
C, คะแนน 3, 309 ไบต์
i
,
j
,
l
,
c
,
d
;
f
(
\
c\
\
h\
\
a\
\
r
*
s
)
{
\
f\
\
o\
\
r
\
(
i
=
l
=
d
=
0
;
s
[
i
]
;
c
>
d
&&
(
d
=
c
)
&&
(
l
=
i
)
,
++
i
)
\
f\
\
o\
\
r
(
\
c\
\
h\
\
a\
\
r
L
[
\
1\
\
2\
\
8
\
]
=
{
j
=
c
=
0
}
;
s
[
i
+
j
]
&&
!
L
[
s
[
i
+
j
++
]
]
++
;
++
c
)
;
\
w\
\
r\
\
i\
\
t\
\
e
(
1
,
s
+
l
,
d
)
;
}
ลองออนไลน์!
11122324455
Jonathan Allan ตระหนักว่าการแก้ไขครั้งแรกของฉันไม่สามารถจัดการได้อย่างถูกต้อง