関数を書きましたが、その大きな O 表記を知る必要があります。私はこれを自分で解決しようとしましたが、O(N^2) が得られましたが、これは正しい答えではないと言われました。
誰かが正しい表記法と、その答えに至った方法の段階的な説明を教えてもらえますか?
機能は以下。
前もって感謝します
public static string Palindrome(string input)
{
string current = string.Empty;
string longest = string.Empty;
int left;
int center;
int right;
if (input == null || input == string.Empty || input.Length == 1) { return input; }
for (center = 1; center < input.Length -1; center++)
{
left = center - 1;
right = center + 1;
if (input[left] == input[center])
{
left--;
}
while (0 <= left && right < input.Length)
{
if (input[left] != input[right])
{
break;
}
current = input.Substring(left, (right - left + 1));
longest = current.Length > longest.Length ? current : longest;
left--;
right++;
}
}
return longest;
}