反转字符.递归算法
今天上午面试的时候遇到一道笔试算法题,题目如下
编写一个方法用于验证指定的字符串是否为反转字符,返回true和false。请用递归算法实现。(反转字符串样式为"abcdedcba")
我写的代码如下,不知道我这种写法是否合格。
string a = string.Empty, b = string.Empty;
protected bool Method(string str,int index)
{
int length = str.Length - 1;
if (index > length) return false;
string strNew = str.Substring(index,1);
if (!a.Contains(strNew))
a += strNew;
else {
string c = b;
b = strNew + c;
}
index++;
if (index <= length)
Method(str,index);
return a.Substring(0, a.Length - 1) == b;
}
调用方式:
Method("abcdedcba",0);
不知道各位高手还有没有更好的写法!