C#算法之判断一个字符串是否是对称字符串

static bool IsSymmetry1(string str)
{
    if (string.IsNullOrEmpty(str) || str.Length == 1)
    {
        return false;
    }
    for (int i = 0; i < str.Length / 2; i++)
    {
        if (str[i] != str[str.Length - 1 - i])
        {
            return false;
        }
    }
    return true;
}

 

static bool IsSymmetry2(string str)
{
    if (string.IsNullOrEmpty(str) || str.Length == 1)
    {
        return false;
    }
    var halfLength = str.Length/2;
    var str1 = str.Substring(0, halfLength);
    var str2 = new String(str.Substring(str.Length%2 == 0 ? halfLength : halfLength + 1, halfLength).Reverse().ToArray());
    return str1.Equals(str2);            
}

效果也能实现,没用遍历,看起来比上个方案要高大上,实际运行效率更低。

 

posted @ 2015-07-01 10:42  叶先生  阅读(436)  评论(0编辑  收藏  举报