All pastes #189405 Raw Edit

Anonymous

public text v1 · immutable
·published 2006-10-03 01:39 UTC
rendered paste body
#!/usr/bin/awk -f
function collapse(s,p,q,    t, pre, rest) {
  t=substr(s,p,q-p)
  pre=substr(s,1,p-1)
  rest=substr(s,q)
  while (substr(rest,1,q-p)==t) {
    rest=substr(rest,q-p+1)
  }
  return pre t rest
}

{
  for(i=1;i<length;++i) {
    b=$0
    k=0
    for(j=int((length+i+1)/2); !collapsed && j>i;--j) {
      c=collapse($0,i,j)
      if(length(c) < length(b)) {
        b=c
        k=j
      }
    }
    $0=b
    if (k > 0) {
      i=k-1
    }
  }
  print
}