String 字符串比较相同顺序的字符数

String 字符串比较相同顺序的字符数,string,comparison,String,Comparison,我有 我需要一个函数(stA,stB),返回5(即匹配的字符数),注意这些字符的顺序必须相同 例如: Str A = "abcdef" Str B = "abcdf" 函数(stA、stB)对于“a”只返回1 伪代码很好 哦,顺便说一句,考虑到我所有的字符串都将我还没有完全测试它,但这似乎对您的测试用例起到了作用(在JavaScript中): Str A = "abcdef" Str B = "fedcba", 功能比较(a、b) { var aChars=a.split(“”); var

我有

我需要一个函数(stA,stB),返回5(即匹配的字符数),注意这些字符的顺序必须相同

例如:

Str A = "abcdef"
Str B = "abcdf"
函数(stA、stB)
对于“a”只返回1

伪代码很好


哦,顺便说一句,考虑到我所有的字符串都将我还没有完全测试它,但这似乎对您的测试用例起到了作用(在JavaScript中):

Str A = "abcdef"
Str B = "fedcba",
功能比较(a、b)
{
var aChars=a.split(“”);
var bChars=b.分割(“”);
var匹配=[];
var-bStart=0;
对于(var i=0;i
基本上,我从字符串A的位置0开始,字符串B的位置0开始。当找到匹配项时,我更改搜索字符串B的开始位置,以便它跳过上一节

function compare(a, b)
{
    var aChars = a.split('');
    var bChars = b.split('');

    var matches = [];
    var bStart = 0;

    for (var i=0; i < aChars.length; i++)
    {
        for (var j=bStart; j < bChars.length; j++)
        {
            if(aChars[i] == bChars[j])
            {
                matches.push(aChars[i]);
                bStart = j;
                break;
            }
        }
    }

    return matches.length;
}

compare('abcdef', 'abcdf'); // returns 5
compare('abcdef', 'fedcba'); // returns 1