日期:2014-05-18  浏览次数:20889 次

求教比较两个长度字符串,返回相同位数怎么实现?
如题
比如 
s1="467598689343346"
s2="467598000003346"

比较s1和s2,返回有5位不同,要求效率高一点的算法

------解决方案--------------------
改一下,上面的有点毛病:

C# code

string s1 = "467598689343346";
string s2 = "467598000003346";

int count = 0;
for (int i = 0; i < (s1.Length > s2.Length ? s1.Length : s2.Length); i++)
{
    if (i < s1.Length && i < s2.Length)
    {
        if (s1[i] != s2[i])
        {
            count++;
        }
    }
}
Console.WriteLine(count);

------解决方案--------------------
这种要求的比较只能用循环,一个一个比较,唯一能做的就是注意循环的长度,应该选择最短的那个串,
就像2楼的那样,
但是要注意,2楼count可能会不对,还应该加上abs(s1.length-s2.length)