The complexity of this method is actually \$O(n^2)\$, where \$n\$ is s1.Length
(which is equal to s2.Length
). Let's expand out IndexOf
and see why.
foreach (char c in s1)
{
int ix = -1;
for (var i = 0; i < s2.Length; i++)
{
if (s2[i] == c)
{
ix = i;
break;
}
}
if (ix == -1)
return false;
}
return true;
As @Pimgd pointed out, it is also incorrect.