Sha256: 904c0ddbb12df9b2e7b031814bcc61f410bf05f3751bee031638b4a7d1d41de2

Contents?: true

Size: 465 Bytes

Versions: 11

Compression:

Stored size: 465 Bytes

Contents

module AcLibraryRb
  # lcp array for array of integers or string
  def lcp_array(s, sa)
    s = s.bytes if s.is_a?(String)

    n = s.size
    rnk = [0] * n
    sa.each_with_index{ |sa, id|
      rnk[sa] = id
    }

    lcp = [0] * (n - 1)
    h = 0
    n.times{ |i|
      h -= 1 if h > 0
      next if rnk[i] == 0

      j = sa[rnk[i] - 1]
      h += 1 while j + h < n && i + h < n && s[j + h] == s[i + h]
      lcp[rnk[i] - 1] = h
    }

    return lcp
  end
end

Version data entries

11 entries across 11 versions & 1 rubygems

Version Path
ac-library-rb-1.2.0 lib_lock/ac-library-rb/lcp_array.rb
ac-library-rb-1.1.0 lib_lock/ac-library-rb/lcp_array.rb
ac-library-rb-1.0.0 lib_lock/ac-library-rb/lcp_array.rb
ac-library-rb-0.7.0 lib_lock/ac-library-rb/lcp_array.rb
ac-library-rb-0.6.1 lib_lock/ac-library-rb/lcp_array.rb
ac-library-rb-0.6.0 lib_lock/ac-library-rb/lcp_array.rb
ac-library-rb-0.5.4 lib_lock/ac-library-rb/lcp_array.rb
ac-library-rb-0.5.3 lib_lock/ac-library-rb/lcp_array.rb
ac-library-rb-0.5.2 lib_lock/ac-library-rb/lcp_array.rb
ac-library-rb-0.5.1 lib_lock/ac-library-rb/lcp_array.rb
ac-library-rb-0.5.0 lib_lock/ac-library-rb/lcp_array.rb