8 个版本 (5 个稳定版)

1.4.3 2022 年 8 月 9 日
1.4.2 2022 年 8 月 7 日
0.1.2 2022 年 8 月 6 日

#1166Rust 模式

Download history 10/week @ 2024-03-31 1/week @ 2024-04-21 12/week @ 2024-05-12 201/week @ 2024-05-19 75/week @ 2024-05-26 252/week @ 2024-06-02 89/week @ 2024-06-09 180/week @ 2024-06-16 117/week @ 2024-06-23 266/week @ 2024-06-30 109/week @ 2024-07-07

每月下载量 695
用于 toolproof

MIT 许可证

10KB
121

相似字符串

Crate API

...查找字符串相似性的库 🔎

使用此库,您可以轻松地找到两个字符串或字符串数组的相似度。底层使用 LCS(长度查找变体)算法,时间复杂度为 O(n * m),内存复杂度为 O(min(n, m))。

示例

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 算法

您还可以使用底层使用的 lcs_length 来计算最长公共子序列的长度。

use similar_string::lcs_length;

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

变更日志 🚀

版本 1.4.3

修复

  • 现在正确处理空字符串

版本 1.4.2

修复

  • 现在处理给定切片为空的情况时使用 Option
  • 改进代码文档

版本 1.3.0

特性

  • 添加 get_similarity_ratings 函数,用于检索所有选项的评分
  • 改进算法以具有 O(min(n, m)) 的内存复杂度

版本 1.2.0

特性

  • 添加 find_best_similarity 函数,用于找到与目标字符串最匹配的字符串

无运行时依赖项