[PerlChina] 如何快速进行等长字符串的按位比较?

Jester jester at perlchina.org
Tue Apr 17 23:23:36 PDT 2007


问个问题,看看大家有没有什么高招。
我需要进行两个“等长”的字符串的“按位”比较,举例而言:
$a='abcdeafaidnfiowndingfodnsingisdnsod';
$b='abcbeafaidniiowndingfodnsingisdxsod';
我希望做成这样的一个sub,比如叫cmpstr,
cmpstr($a,$b)将返回一个array,其中包含了这两个字符串中所有不同的位点的位置。
那么对于上面的例子也就是会返回(4,12,32)。
当然,这只是一个例子,我实际的应用中这两个字符串可能很长,但是肯定是等长的。
目前我知道可以用substr一个一个的提取然后比较,但是我觉得这样会很慢,不知道是否有更加高效的解决方案?
我觉得位运算的效率很高,但是对于我现在的要求好像又不太好用……
请大家帮忙出点高招。


Jester


More information about the China-pm mailing list