Top Challenge Entrants
1
jaytea
587 2
[Znork]
303 3
urza
297 4
Ag2X
288 5
dr_Eamer
255 6
Albie
199 7
Chessnut
197 8
A Noniem
194 9
zzattack
186 10
Kol
185 11
m910q
168 12
Sephiroth
115 13
Auron956
114 14
patje
114 15
chid
110 16
Ohad2121
92 17
SkorpSSS
87 18
DixrouE
84 19
Suchorski
83 20
^Vampire^
74
Challenge: Smallest $reduce
Start: May 3rd 2010
End: May 7th 2010
Results Another successfull challenge comes to a close again! Many found this one hard, although there was a dirty trick to the challenge.
The easiest way to complete this challenge was to simply take 3 characters from offset x, find the range of 1st and 3rd character, if its 1 or -1 then then replace the middle character with "-"
Doing it this way you will end up with multiple dashes, the dirty trick is simply to $remove these double dashes. This isn't the best method but its allowed for shorter sizes.
Now onto the results
There was a total of
16 non-regex of which
12 were valid and
3 regex entries of which
2 were valid
Congratulations to the winner jaytea! for both non-regex and regex entries. Also congrats to the
runner up Znork (non regex) and
Ag2X (regex).
Winner! jaytea (141 bytes!)
reduce {
%i =
:%c
inc %i
var %c $asc($mid($1,%i)),%s %s $+ $iif($calc((%c -%l)^-9999+3) & $v1,-,$chr(%l)),%l %c
goto %c )
:)
return $deltok(%s,,45)
}
Winner! jaytea (99 bytes!)
reduce return $deltok($regsubex($1,/(.)/g,$iif($calc(($asc(\1)-$asc(\2))^-9999+3) & $v1,-,\1)),,45)
Non regex entries Top entries:
1
jaytea
141 bytes
reduce {
%i =
:%c
inc %i
var %c $asc($mid($1,%i)),%s %s $+ $iif($calc((%c -%l)^-9999+3) & $v1,-,$chr(%l)),%l %c
goto %c )
:)
return $deltok(%s,,45)
}
2
[Znork]
152 bytes
reduce {
%s = $1.
while (%s) var %a %b,%b %2 - $asc(%s),%r $replace(%r $+ $iif(%a = %b && %a isin -1,-,$chr(%2)),--,-),%2 $asc(%s),%s $mid(%s,2)
return %r
}
3
Sephiroth
178 bytes
reduce {
%i = $1
while %i {
var %u $asc(%i),%i $mid(%i,2),%s %u - $asc(%i),%f %y - %s,%y %s
if %f || $abs(%s) != 1 {
var %o $+(%o,$iif(%r > 1,-),$chr(%u)),%r
}
if (%s) inc %r
}
return %o
}
4
A Noniem
180 bytes
reduce {
bset -tc &b 1 $1
%a = 1
while $bvar(&b,%a) {
var %c $replace(%c,--,-) $+ $iif($calc(($bvar(&b,$({,%a))-$v1)*($v1 -$bvar(&b,$calc(1+%a)))) = 1,-,$mid($1,%a,1))
inc %a
}
return %c
}
5
m910q
193 bytes
reduce {
%l = 26
while %l > 2 {
%i = 1
while $mid(abcdefghijklmnopqrstuvwxyzåzyxwvutsrqponmlkjihgfedcbaå,%i,%l) {
tokenize 1 $replace($1,$v1,$+($left($v1,1),-,$right($v1,1)))
inc %i
}
dec %l
}
return $1
}
6
dr_Eamer
200 bytes
reduce {
%r = $1
%i = 97
while %i < 123 {
z %i +
z 220-%i -
inc %i
}
v - +
return %r
}
z v $2 $b($1- 1) $b($1) $b($1- 2)
v %r = $replace(%r,$+($3,$2,$4),$+($3,$1,$4),$+($1,$2,$4),$1 $+ $4)
b return $chr($calc($1))
7
Ag2X
204 bytes
reduce {
var %i 2,%s,%r,%d 1
while $asc($mid($1,$({,%i))) {
%t = $asc($mid($1,%i)) - $v1
if %t = %s && $pos(1-1,%t) {
if (%d) %r = %r $+ -
%d =
}
else {
%r = %r $+ $mid($1,$({,%i),1)
%d = 1
%s = %t
}
inc %i
}
return %r
}
8
Auron956
242 bytes
reduce {
%s = $1
tokenize 2 abcdefghijklmnopqrstuvwxyzzyxwvutsrqponmlkjihgfedcba
a $*
return %s
}
a {
%l = 26
while %l > 2 {
%p = 1
while %p < $calc(28-%l) {
%s = $replace(%s,$mid($1,%p,%l),$+($mid($1,%p,1),-,$mid($1,$calc(%p -1+%l),1)))
inc %p
}
dec %l
}
}
9
Kol
253 bytes
reduce {
var %r $1,%z abcdefghijklmnopqrstuvwxyz
:o
var %x 1,%y 26
while %x < 25 {
while ???* iswm $mid(%z,%x,%y) {
%r = $replace(%r,$v2,$+($left($v2,1),-,$right($v2,1)))
dec %y
}
%y = 26 - %x
inc %x
}
if a* iswm %z {
%z = zyxwvutsrqponmlkjihgfedcba
goto o
}
return %r
}
10
Lindrian
272 bytes
reduce {
%d =
%s =
%i = 1
while $mid($1,%i,1) {
inc %i
var %x $asc($v1),%y $asc($mid($1,%i,1)),%z %s - %x
if $calc(1+%x) = %y || ($2 && $calc(1+%y) = %x && %y != %s) {
if (!%s) %s = %x
}
else {
%d = $+(%d,$chr(%s),$iif($abs(%z) > 1,-),$chr(%x))
%s =
}
}
if (!$2) r
return %d
}
r reduce %d 1
11
Splin
662 bytes
reduce {
%x = $len($1)
%y = $null
%z = %x
while %x {
%y = %y $asc($mid($1,%x,1))
dec %x
}
%x = %z
while %x {
:1
if ($gettok(%y,%x,32) == $calc($gettok(%y,$calc(%x - 1),32) + 1)) {
inc %k | dec %x | goto 1
}
else {
if %k > 1 {
dec %k
while %k {
%t = $calc(%x + %k)
%y = $instok($deltok(%y,%t,32),1,%t,32)
dec %k
}
}
%k = 0
dec %x
}
}
%x = %z
while %x {
:2
if ($gettok(%y,%x,32) == $calc($gettok(%y,$calc(%x - 1),32) - 1)) {
inc %k | dec %x | goto 2
}
else {
if %k > 1 {
dec %k
while %k {
%t = $calc(%x + %k)
%y = $instok($deltok(%y,%t,32),1,%t,32)
dec %k
}
}
%k = 0
dec %x
}
}
%x = $null
while %z {
%x = %x $+ $chr($gettok(%y,%z,32))
dec %z
}
clipboard $replace(%x,$chr(1),$chr(32))
return $replace($cb,$chr(32),-)
}
Invalid entries:
void-
188 bytes
* Test failed: $reduce(eca) yours returned e-a / should of been eca
reduce {
%i = 0
while $mid($1,%i) {
inc %i
var %c %b,%b %a,%a $asc($mid($1,%i)),%d %a - %b,%e $calc((%a +%c)/2),%o $+(%o,$iif($abs(%d) && %e = %b,$iif($mid(%o,-1) != -,-),$chr(%b)))
}
return %o
}
dustin
243 bytes
* Error allocating stack memory: doesnt work for entries >= $len(36)
f {
%t = $mid($1,2)
%d = $asc($1) - $asc(%t)
if (!$2 || %d = $2) && %t && $abs(%d) = 1 %r $calc(1+$g(%t,%d))
}
g %r $f($1,$2)
h %r $reduce($1)
reduce {
%r = return
%i = $f($1) + 1
if ($1) %r $+($left($1,1),$iif(%i > 2,-),$h($mid($1,$iif(%i > 2,%i,2))))
}
FroggieDaFrog
368 bytes
* Test failed: $reduce(ace) yours returned a-e / should of been ace
alias reduce { var %r $left($1,1),%x 2
while (%x < $len($1-)) { var %p $asc($mid($1,$calc(%x -1),1)),%c $asc($mid($1,%x,1)),%n $asc($mid($1-,$calc(%x +1),1)),%r %r $+ $iif(%p = %c || $calc(%c - %p) != $calc(%n - %c),$chr(%c),$iif($right(%r,1) != -,-))
inc %x }
return $+(%r,$iif($remove($calc($asc($right($1,1)) - $asc(Right(%r,1))),-) = 1,-),$iif($len($1) > 1,$right($1,1))) }
Jigsy
503 bytes
* Test failed: $reduce(abd) yours returned ad / should of been abd
p return $iif($mid(%a,$calc($pos(%a,$1) $2 1),1),$v1,$1)
reduce {
if $len($1) > 2 {
%a = abcdefghijklmnopqrstuvwxyz
%b = 0
%e =
%z =
while %b < $len($1) {
inc %b
%c = $mid($1,%b,1)
%d = $right(%z,1)
if %c = %d {
%z = %z $+ %c
}
else {
:1
if $p(%c,+) = %d || $p(%c,-) = %d {
%d = %c
inc %b
if $mid($1,$calc(%b -2),1) = $mid($1,%b,1) {
%z = %z $+ - $+ %c
}
%c = $mid($1,%b,1)
inc %e
goto 1
}
else {
if %e > 1 {
%z = %z $+ - $+ %d
%e =
}
%z = %z $+ $iif(%e > 1,%d) $+ %c
}
}
}
if $right(%z,1) = - {
%z = %z $+ $right($1,1)
}
return %z
}
return $1
crosbow
5848 bytes
reduce {
/* the actual code is 44 Byte only, because the argument of the $replace command is STRING DATA not CODE!!!
CODE:
var %o $replace($1,%x)
return $replace(%o,%x)
*/
var %o $replace($1,abc,a-c,a-cd,a-d,a-de,a-e,a-ef,a-f,a-fg,a-g,a-gh,a-h,a-hi,a-i,a-ij,a-j,a-jk,a-k,a-kl,a-l, $&
a-lm,a-m,a-mn,a-n,a-no,a-o,a-op,a-p,a-pq,a-q,a-qr,a-r,a-rs,a-s,a-st,a-t,a-tu,a-u,a-uv,a-v,a-vw,a-w,a-wx,a-x,a-xy, $&
a-y,a-yz,a-z,bcd,b-d,b-de,b-e,b-ef,b-f,b-fg,b-g,b-gh,b-h,b-hi,b-i,b-ij,b-j,b-jk,b-k,b-kl,b-l,b-lm,b-m,b-mn, $&
b-n,b-no,b-o,b-op,b-p,b-pq,b-q,b-qr,b-r,b-rs,b-s,b-st,b-t,b-tu,b-u,b-uv,b-v,b-vw,b-w,b-wx,b-x,b-xy,b-y,b-yz,b-z,cde, $&
c-e,c-ef,c-f,c-fg,c-g,c-gh,c-h,c-hi,c-i,c-ij,c-j,c-jk,c-k,c-kl,c-l,c-lm,c-m,c-mn,c-n,c-no,c-o,c-op,c-p,c-pq, $&
c-q,c-qr,c-r,c-rs,c-s,c-st,c-t,c-tu,c-u,c-uv,c-v,c-vw,c-w,c-wx,c-x,c-xy,c-y,c-yz,c-z,def,d-f,d-fg,d-g,d-gh, $&
d-h,d-hi,d-i,d-ij,d-j,d-jk,d-k,d-kl,d-l,d-lm,d-m,d-mn,d-n,d-no,d-o,d-op,d-p,d-pq,d-q,d-qr,d-r,d-rs,d-s,d-st,d-t,d-tu, $&
d-u,d-uv,d-v,d-vw,d-w,d-wx,d-x,d-xy,d-y,d-yz,d-z,efg,e-g,e-gh,e-h,e-hi,e-i,e-ij,e-j,e-jk,e-k,e-kl,e-l,e-lm, $&
e-m,e-mn,e-n,e-no,e-o,e-op,e-p,e-pq,e-q,e-qr,e-r,e-rs,e-s,e-st,e-t,e-tu,e-u,e-uv,e-v,e-vw,e-w,e-wx,e-x,e-xy,e-y,e-yz, $&
e-z,fgh,f-h,f-hi,f-i,f-ij,f-j,f-jk,f-k,f-kl,f-l,f-lm,f-m,f-mn,f-n,f-no,f-o,f-op,f-p,f-pq,f-q,f-qr,f-r,f-rs, $&
f-s,f-st,f-t,f-tu,f-u,f-uv,f-v,f-vw,f-w,f-wx,f-x,f-xy,f-y,f-yz,f-z,ghi,g-i,g-ij,g-j,g-jk,g-k,g-kl,g-l,g-lm, $&
g-m,g-mn,g-n,g-no,g-o,g-op,g-p,g-pq,g-q,g-qr,g-r,g-rs,g-s,g-st,g-t,g-tu,g-u,g-uv,g-v,g-vw,g-w,g-wx,g-x,g-xy,g-y,g-yz, $&
g-z,hij,h-j,h-jk,h-k,h-kl,h-l,h-lm,h-m,h-mn,h-n,h-no,h-o,h-op,h-p,h-pq,h-q,h-qr,h-r,h-rs,h-s,h-st,h-t,h-tu, $&
h-u,h-uv,h-v,h-vw,h-w,h-wx,h-x,h-xy,h-y,h-yz,h-z,ijk,i-k,i-kl,i-l,i-lm,i-m,i-mn,i-n,i-no,i-o,i-op,i-p,i-pq, $&
i-q,i-qr,i-r,i-rs,i-s,i-st,i-t,i-tu,i-u,i-uv,i-v,i-vw,i-w,i-wx,i-x,i-xy,i-y,i-yz,i-z,jkl,j-l,j-kl,j-l,j-lm,j-m,j-mn, $&
j-n,j-no,j-o,j-op,j-p,j-pq,j-q,j-qr,j-r,j-rs,j-s,j-st,j-t,j-tu,j-u,j-uv,j-v,j-vw,j-w,j-wx,j-x,j-xy,j-y,j-yz,j-z,klm, $&
k-m,k-mn,k-n,k-no,k-o,k-op,k-p,k-pq,k-q,k-qr,k-r,k-rs,k-s,k-st,k-t,k-tu,k-u,k-uv,k-v,k-vw,k-w,k-wx,k-x,k-xy, $&
k-y,k-yz,k-z,lmn,l-n,l-no,l-o,l-op,l-p,l-pq,l-q,l-qr,l-r,l-rs,l-s,l-st,l-t,l-tu,l-u,l-uv,l-v,l-vw,l-w,l-wx, $&
l-x,l-xy,l-y,l-yz,l-z,mno,m-o,m-op,m-p,m-pq,m-q,m-qr,m-r,m-rs,m-s,m-st,m-t,m-tu,m-u,m-uv,m-v,m-vw,m-w,m-wx, $&
m-x,m-xy,m-y,m-yz,m-z,nop,n-p,n-pq,n-q,n-qr,n-r,n-rs,n-s,n-st,n-t,n-tu,n-u,n-uv,n-v,n-vw,n-w,n-wx,n-x,n-xy, $&
n-y,n-yz,n-z,opq,o-q,o-pq,o-q,o-qr,o-r,o-rs,o-s,o-st,o-t,o-tu,o-u,o-uv,o-v,o-vw,o-w,o-wx,o-x,o-xy,o-y,o-yz,o-z,pqr, $&
p-r,p-rs,p-s,p-st,p-t,p-tu,p-u,p-uv,p-v,p-vw,p-w,p-wx,p-x,p-xy,p-y,p-yz,p-z,qrs,q-s,q-st,q-t,q-tu, $&
q-u,q-uv,q-v,q-vw,q-w,q-wx,q-x,q-xy,q-y,q-yz,q-z,rst,r-t,r-tu,r-u,r-uv,r-v,r-vw,r-w,r-wx,r-x,r-xy,r-y,r-yz, $&
r-z,stu,s-u,s-uv,s-v,s-vw,s-w,s-wx,s-x,s-xy,s-y,s-yz,s-z,tuv,t-v,t-vw,t-w,t-wx,t-x,t-xy,t-y,t-yz, $&
t-z,uvw,u-w,u-wx,u-x,u-xy,u-y,u-yz,u-z,vwx,v-x,v-xy,v-y,v-yz,v-z,wxy,w-y,w-yz,w-z,xyz,x-z)
return $replace(%o,zyx,z-x,z-xw,z-w,z-wv,z-v,z-vu,z-u,z-ut,z-t,z-ts,z-s,z-sr,z-r,z-rq,z-q,z-qp,z-p,z-po,z-o,z-on,z-n, $&
z-nm,z-m,z-ml,z-l,z-lk,z-k,z-kj,z-j,z-ji,z-i,z-ih,z-h,z-hg,z-g,z-gf,z-f,z-fe,z-e,z-ed,z-d,z-dc,z-c,z-cb,z-b,z-ba,z-a,yxw, $&
y-w,y-wv,y-v,y-vu,y-u,y-ut,y-t,y-ts,y-s,y-sr,y-r,y-rq,y-q,y-qp,y-p,y-po,y-o, $&
y-on,y-n,y-nm,y-m,y-ml,y-l,y-lk,y-k,y-kj,y-j,y-ji,y-i,y-ih,y-h,y-hg,y-g,y-gf,y-f,y-fe,y-e,y-ed,y-d,y-dc,y-c,y-cb,y-b, $&
y-ba,y-a,xwv,x-v,x-vu,x-u,x-ut,x-t,x-ts,x-s,x-sr,x-r,x-rq,x-q,x-qp,x-p,x-po,x-o,x-on,x-n, $&
x-nm,x-m,x-ml,x-l,x-lk,x-k,x-kj,x-j,x-ji,x-i,x-ih,x-h,x-hg,x-g,x-gf,x-f,x-fe,x-e,x-ed,x-d,x-dc,x-c,x-cb,x-b,x-ba,x-a, $&
wvu,w-u,w-ut,w-t,w-ts,w-s,w-sr,w-r,w-rq,w-q,w-qp,w-p,w-po,w-o,w-on,w-n,w-nm,w-m,w-ml,w-l, $&
w-lk,w-k,w-kj,w-j,w-ji,w-i,w-ih,w-h,w-hg,w-g,w-gf,w-f,w-fe,w-e,w-ed,w-d,w-dc,w-c,w-cb,w-b,w-ba,w-a,vut,v-t, $&
v-ut,v-t,v-ts,v-s,v-sr,v-r,v-rq,v-q,v-qp,v-p,v-po,v-o,v-on,v-n,v-nm,v-m,v-ml,v-l,v-lk,v-k,v-kj,v-j,v-ji,v-i, $&
v-ih,v-h,v-hg,v-g,v-gf,v-f,v-fe,v-e,v-ed,v-d,v-dc,v-c,v-cb,v-b,v-ba,v-a,uts,u-s,u-sr,u-r, $&
u-rq,u-q,u-qp,u-p,u-po,u-o,u-on,u-n,u-nm,u-m,u-ml,u-l,u-lk,u-k,u-kj,u-j,u-ji,u-i,u-ih,u-h,u-hg,u-g,u-gf,u-f,u-fe,u-e, $&
u-ed,u-d,u-dc,u-c,u-cb,u-b,u-ba,u-a,tsr,t-r,t-rq,t-q,t-qp,t-p,t-po,t-o,t-on,t-n,t-nm,t-m, $&
t-ml,t-l,t-lk,t-k,t-kj,t-j,t-ji,t-i,t-ih,t-h,t-hg,t-g,t-gf,t-f,t-fe,t-e,t-ed,t-d,t-dc,t-c,t-cb,t-b,t-ba,t-a,srq,s-q, $&
s-qp,s-p,s-po,s-o,s-on,s-n,s-nm,s-m,s-ml,s-l,s-lk,s-k,s-kj,s-j,s-ji,s-i,s-ih,s-h,s-hg,s-g, $&
s-gf,s-f,s-fe,s-e,s-ed,s-d,s-dc,s-c,s-cb,s-b,s-ba,s-a,rqp,r-p,r-po,r-o,r-on,r-n,r-nm,r-m, $&
r-ml,r-l,r-lk,r-k,r-kj,r-j,r-ji,r-i,r-ih,r-h,r-hg,r-g,r-gf,r-f,r-fe,r-e,r-ed,r-d,r-dc,r-c,r-cb,r-b,r-ba,r-a,qpo,q-o, $&
q-on,q-n,q-nm,q-m,q-ml,q-l,q-lk,q-k,q-kj,q-j,q-ji,q-i,q-ih,q-h,q-hg,q-g,q-gf,q-f,q-fe,q-e, $&
q-ed,q-d,q-dc,q-c,q-cb,q-b,q-ba,q-a,pon,p-n,p-nm,p-m,p-ml,p-l,p-lk,p-k,p-kj,p-j,p-ji,p-i, $&
p-ih,p-h,p-hg,p-g,p-gf,p-f,p-fe,p-e,p-ed,p-d,p-dc,p-c,p-cb,p-b,p-ba,p-a,onm,o-m,o-ml,o-l, $&
o-lk,o-k,o-kj,o-j,o-ji,o-i,o-ih,o-h,o-hg,o-g,o-gf,o-f,o-fe,o-e,o-ed,o-d,o-dc,o-c,o-cb,o-b,o-ba,o-a,nml,n-l, $&
n-lk,n-k,n-kj,n-j,n-ji,n-i,n-ih,n-h,n-hg,n-g,n-gf,n-f,n-fe,n-e,n-ed,n-d,n-dc,n-c,n-cb,n-b,n-ba,n-a, $&
mlk,m-k,m-kj,m-j,m-ji,m-i,m-ih,m-h,m-hg,m-g,m-gf,m-f,m-fe,m-e,m-ed,m-d,m-dc,m-c,m-cb,m-b, $&
m-ba,m-a,lkj,l-j,l-ml,l-l,l-lk,l-k,l-kj,l-j,l-ji,l-i,l-ih,l-h,l-hg,l-g,l-gf,l-f,l-fe,l-e,l-ed,l-d,l-dc,l-c,l-cb,l-b, $&
l-ba,l-a,kji,k-i,k-lk,k-k,k-kj,k-j,k-ji,k-i,k-ih,k-h,k-hg,k-g,k-gf,k-f,k-fe,k-e,k-ed,k-d,k-dc,k-c,k-cb,k-b,k-ba,k-a, $&
jih,j-h,j-hg,j-g,j-gf,j-f,j-fe,j-e,j-ed,j-d,j-dc,j-c,j-cb,j-b,j-ba,j-a,ihg,i-g,i-ji,i-i, $&
i-ih,i-h,i-hg,i-g,i-gf,i-f,i-fe,i-e,i-ed,i-d,i-dc,i-c,i-cb,i-b,i-ba,i-a,hgf,h-f,h-fe,h-e, $&
h-ed,h-d,h-dc,h-c,h-cb,h-b,h-ba,h-a,gfe,g-e,g-ed,g-d,g-dc,g-c,g-cb,g-b,g-ba,g-a,fed,f-d, $&
f-dc,f-c,f-cb,f-b,f-ba,f-a,edc,e-c,e-fe,e-e,e-ed,e-d,e-dc,e-c,e-cb,e-b,e-ba,e-a,dcb,d-b, $&
d-ba,d-a,cba,c-a)
}
Regex entries Top entries:
1
jaytea
99 bytes
reduce return $deltok($regsubex($1,/(.)/g,$iif($calc(($asc(\1)-$asc(\2))^-9999+3) & $v1,-,\1)),,45)
2
Ag2X
168 bytes
reduce return $left($regsubex($1_,/(.)(?=.)/g,$°(\1,\2,%d)),-1)
° {
if $calc($asc($1)-$asc($2)) = %s && $v1 isin 1-1 {
%d =
if ($3) return -
}
else {
%d = 1
%s = $v1
return $1
}
}
Invalid entries:
Tom-
359 bytes
* Test failed: $reduce(ab) yours returned a-b / should of been ab
/Reduce {
if ($2) {
var %a abcdefghijklmnopqrstuvwxyz
$iif($pos(%a,$2,1) == $calc($pos(%a,$1,1) +1),return -)
$iif($pos(%a,$2,1) == $calc($pos(%a,$1,1) -1),return ")
}
else {
return $remove($regsubex($regsubex($regsubex($left($1,1) $+ $regsubex($1,/(.)/g,$iif($reduce(\1,$iif(\2,$v1,2)),$v1,:) \2),/(-.[^:"]+-)/g,-),/([a-z]-)/g,: \1),/(".[^:]+")/g,-),$chr(32),:,")
}
}