c# - 回文递归:简化条件三元表达式
问题描述
我需要实现一个递归方法来检查输入是否是回文。我能够在一行中做到这一点并且它有效,但我不确定它的可读性如何。我也不断收到一条消息“简化条件三元表达式”,但我不确定这是我的代码:
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]);
}
解决方案
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 : false
到return expression
.
这当然不容易,但我认为这是为了学校练习?
推荐阅读
- python - Django Form 无需更改即可刷新!没有错误
- java - 在 LWGL 中渲染一个正方形
- azure-devops - YAML 应该如何在我的构建管道中使用 Docker 容器(sidecar 服务)
- django - 管理中的 Django 横幅
- selenium - 获取错误方法发送键未定义类型 webelement
- json - ASP.NET Core 3 - Serilog 如何在 appsettings.json 文件中配置 Serilog.Sinks.Map?
- reactjs - 将数据传递给 react-vega
- android - 评级栏在回收站视图中为 0
- swift - Firebase 和 Google 身份验证构建失败 => API_UNAVAILABLE(macCatalyst) ==> “预期 ','”
- localhost - 将 Instagram 基本显示 API 与 Hugo 和 localhost 等静态站点结合使用?