8 个版本 (5 个稳定版)
1.4.3 | 2022 年 8 月 9 日 |
---|---|
1.4.2 | 2022 年 8 月 7 日 |
0.1.2 | 2022 年 8 月 6 日 |
#1166 在 Rust 模式 中
每月下载量 695
用于 toolproof
10KB
121 行
相似字符串
...查找字符串相似性的库 🔎
使用此库,您可以轻松地找到两个字符串或字符串数组的相似度。底层使用 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
函数,用于找到与目标字符串最匹配的字符串