首页 > 解决方案 > 回文递归:简化条件三元表达式

问题描述

我需要实现一个递归方法来检查输入是否是回文。我能够在一行中做到这一点并且它有效,但我不确定它的可读性如何。我也不断收到一条消息“简化条件三元表达式”,但我不确定这是我的代码:

private static bool checkIfPalindrome(string i_InputToCheck, int i_StartIndex, int i_EndIndex)
    {
        return (i_StartIndex >= i_EndIndex) ? true : checkIfPalindrome(i_InputToCheck, i_StartIndex + 1, i_EndIndex - 1) && (i_InputToCheck[i_StartIndex] == i_InputToCheck[i_EndIndex]);
    }

标签: c#recursionpalindromeconditional-operatorsimplify

解决方案


return i_StartIndex >= i_EndIndex || checkIfPalindrome(i_InputToCheck, i_StartIndex + 1, i_EndIndex - 1) && i_InputToCheck[i_StartIndex] == i_InputToCheck[i_EndIndex];

提示的简化是因为您正在测试一个布尔表达式,然后不必要地检查并返回它......

if (expression == true)相当于if (expression)

return expression ? true : falsereturn expression.

这当然不容易,但我认为这是为了学校练习?


推荐阅读