Reflections on isPalindrome
MattCoder via Digitalmars-d-learn
digitalmars-d-learn at puremagic.com
Tue Oct 28 04:48:36 PDT 2014
Hi,
I don't know if I'm missing something but I did some tests with
the popFront and popBack version:
bool isPalindrome(R)(R range)
if (isBidirectionalRange!(R))
{
while (!range.empty){
if (range.front != range.back) return false;
range.popFront();
if (range.empty) break;
range.popBack();
}
return true;
}
Against the older known version (or implementation):
bool isPalindrome2(R)(R r){
auto len = r.length;
auto mid = len/2;
--len;
for(auto i=0;i<mid;++i){
if(r[i]!=r[len-i]){
return false;
}
}
return true;
}
And in my benchmark test, the first version is 3x "slower" than
the second one.
Matheus.
More information about the Digitalmars-d-learn
mailing list