{ # use -vW=4 or 14 for (i=1; ; i++) { window = substr($0,i,W) for (j=1; j<=W; j++) { # populate a Set A[substr(window,j,1)]=1 } if (length(A) == W) { print i + W - 1 next } delete A } } # O(N*W*log2(W))