比如,一个字符串是w_angqmab,,,另一个字符串是w+bangemx,,我想编写一个函数,,让它返回后一个字符串与前一个字符串得到匹配字符的个数,,,,我该怎么编写函数啊,,求大神们指点!!!!万分感谢!!!急急急急~~~~
排序后再比较计数。
用C#演示一下,C的处理方式类似。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Xml.Linq;
namespace ConsoleApplication1
{
class Program
{
static void BubbleSort(char[] a)
{
...
}
static int CalcMatchCount(string s1, string s2)
{
char[] a1 = s1.ToCharArray();
char[] a2 = s2.ToCharArray();
BubbleSort(a1);
BubbleSort(a2);
// DEBUG
Console.WriteLine(new string(a1));
Console.WriteLine(new string(a2));
int c = 0;
for (int i1 = 0, i2 = 0; (i1 < a1.Length) && (i2 < a2.Length); )
{
switch (Math.Sign( a1[i1].CompareTo(a2[i2])))
{
case -1:
i1++;
break;
case 0:
c++;
i1++;
i2++;
break;
case 1:
i2++;
break;
}
}
return c;
}
static void Main(string[] args)
{
string s1 = "w_angqmab";
string s2 = "w+bangemx";
Console.WriteLine(CalcMatchCount(s1, s2));
Console.ReadLine();
}
}
}
结果
_aabgmnqw
+abegmnwx
6
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。