今天上午面试的时候遇到一道笔试算法题,题目如下
编写一个方法用于验证指定的字符串是否为反转字符,返回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 );
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 );
不知道各位高手还有没有更好的写法!