class Amatch::LongestSubsequence

This class computes the length of the longest subsequence common to two strings. A subsequence doesn't have to be contiguous. The longer the common subsequence is, the more similar the two strings will be.

The longest common subsequence between “test” and “test” is of length 4, because “test” itself is this subsequence. The longest common subsequence between “test” and “east” is “e”, “s”, “t” and the length of the sequence is 3.

Public Class Methods

new(pattern) click to toggle source

Creates a new Amatch::LongestSubsequence instance from pattern.

static VALUE rb_LongestSubsequence_initialize(VALUE self, VALUE pattern)
{
    GET_STRUCT(General)
    General_pattern_set(amatch, pattern);
    return self;
}

Public Instance Methods

match(strings) → results click to toggle source

Uses this Amatch::LongestSubsequence instance to match LongestSubsequence#pattern against strings, that is compute the length of the longest common subsequence. strings has to be either a String or an Array of Strings. The returned results is either a Fixnum or an Array of Fixnums respectively.

static VALUE rb_LongestSubsequence_match(VALUE self, VALUE strings)
{
    GET_STRUCT(General)
    return General_iterate_strings(amatch, strings, LongestSubsequence_match);
}
pattern → pattern string

Returns the current pattern string of this Amatch::Sellers instance.

pattern=(pattern)

Sets the current pattern string of this Amatch::Sellers instance to pattern.

similar(strings) → results click to toggle source

Uses this Amatch::LongestSubsequence instance to match Amatch::LongestSubsequence#pattern against strings, and compute a longest substring distance metric number between 0.0 for very unsimilar strings and 1.0 for an exact match. strings has to be either a String or an Array of Strings. The returned results is either a Fixnum or an Array of Fixnums

static VALUE rb_LongestSubsequence_similar(VALUE self, VALUE strings)
{
    GET_STRUCT(General)
    return General_iterate_strings(amatch, strings, LongestSubsequence_similar);
}