我正在寻找一个JavaScript函数,可以比较两个字符串并返回它们相似的可能性.我看过soundex,但这对于多字符串或非名字来说并不是很好.我正在寻找像这样的功能:
function compare(strA,strB){
}
compare("Apples","apple") = Some X Percentage.
Run Code Online (Sandbox Code Playgroud)
该函数适用于所有类型的字符串,包括数字,多字值和名称.也许我可以使用一个简单的算法?
Ultimately none of these served my purpose so I used this:
function compare(c, u) {
var incept = false;
var ca = c.split(",");
u = clean(u);
//ca = correct answer array (Collection of all correct answer)
//caa = a single correct answer word array (collection of words of a single correct answer)
//u = array of user answer words cleaned using custom clean function
for (var z = 0; z …
Run Code Online (Sandbox Code Playgroud) 我希望我正确地措辞这一点,以了解我正在寻找的东西.
我需要比较两段文字.如果这两个字符串是相似的,我想得到非常相似的分数,如果字符串非常不同,我需要非常不同的分数.
如果我采用电子邮件的md5哈希值并更改一个字符,哈希值会发生显着变化,我希望某些内容不会发生太大变化.我需要比较两个内容的相似程度,而不存储字符串.
更新:我现在正在考虑结合人们提供的各种链接中的一些想法.理想情况下,我会喜欢一个输入函数来创建我的分数所以我正在寻找使用引用字符串来始终比较我的输入.我也在考虑收集asci角色并总结这些.仍在阅读所有提供的链接.
问题:需要两个字符串之间的LCS长度.字符串的大小最多为100个字符.字母表是通常的DNA,4个字符"ACGT".动态方法不够快.
我的问题是我正在处理很多对(我看到的数百万的等级).我相信我已经将LCS_length函数的调用减少到最小可能,因此使程序运行得更快的唯一方法是使用更高效的LCS_Length函数.
我已经开始实施通常的动态编程方法.这给出了正确答案,希望能够正确实施.
#define arrayLengthMacro(a) strlen(a) + 1
#define MAX_STRING 101
static int MaxLength(int lengthA, int lengthB);
/*
* Then the two strings are compared following a dynamic computing
* LCS table algorithm. Since we only require the length of the LCS
* we can get this rather easily.
*/
int LCS_Length(char *a, char *b)
{
int lengthA = arrayLengthMacro(a),lengthB = arrayLengthMacro(b),
LCS = 0, i, j, maxLength, board[MAX_STRING][MAX_STRING];
maxLength = MaxLength(lengthA, lengthB);
//printf("%d %d\n", lengthA, lengthB);
for (i = …
Run Code Online (Sandbox Code Playgroud)