Skip to content

Ph0enixKM/similar-string

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

13 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Similar String

Crate API

...the library for finding string similarities πŸ”Ž

With this library you can easily find rate of similarity of two strings or array of strings. Under the hood LCS (length finding variant) algorithm is used with O(n * m) time complexity and O(min(n, m)) memory complexity.

Example

use similar_string::*;

// Compares similarity of two strings and returns similarity rating.
// The rating is returned as a f64 value in range from 0.0 to 1.0.
compare_similarity("age", "page"); // 0.75

let options = vec!["fill", "night", "ride"];

// The functions below return `None` if the provided slice is empty

// Finds the best match amongst the options
// and returns match with it's rating
find_best_similarity("fight", &options); // Some(("night", 0.8))

// Returns all the similarity ratings
// of the provided options
get_similarity_ratings("fight", &options); // Some([0.4, 0.8, 0.2])

LCS Algorithm

You can also use the lcs_length that is used under the hood to compute length of longest common subsequence.

use similar_string::lcs_length;

// The longest common subsequence in this case is "one"
lcs_length("longest", "stone"); // 3

Change log πŸš€

Version 1.4.3

Fix:

  • Empty strings are now properly handled

Version 1.4.2

Fix:

  • Case when given slice is empty is now handled with Option
  • Improved code documentation

Version 1.3.0

Feature:

  • Add get_similarity_ratings function that retrieves all the ratings of all options
  • Improve algorithm to take O(min(n, m)) memory complexity

Version 1.2.0

Feature:

  • Add find_best_similarity function that finds string that matches the target one best

Releases

No releases published

Packages

No packages published

Languages