方針
元の文字列と、文字列を反転させたものを重ね合わせ、1文字ずつずらしていき一致したところまで
ずらした数+nが答えとなります。
こっちの方が簡単に実装できますね。
ソースコード
>|cs|
using System;
using System.Collections.Generic;
using System.Text;
public class ThePalindrome
{
public int find(string s)
{
int n = s.Length;
char[] tmp = s.ToCharArray();
Array.Reverse(tmp);
string revS = new string(tmp);
int res = 0;
for (int i = 0; i < n; i++)
if (s.Substring(i, n - i).Equals(revS.Substring(0, n - i)))
{
res = n + i;
break;
}
return res;
}
}
|