java - 检查字符串在java中是否只有一个回文字符不匹配
问题描述
我必须编写一个布尔函数,它接受一个字符串并检查一个字符串在java中是否是回文。
这是我的代码
static boolean isPalindrome(String input)
{
int i = 0;
last = input.length() - 1;
while (i < last) {
if (input.charAt(i) != input.charAt(last))
return false;
i++;
last--;
}
return true;
}
我想将此部分添加到我的代码中,但我坚持认为如果只有一个字符不匹配,我应该将其视为有效回文。
样本结果:
“book” -> true
“refer” -> true
“” -> true
解决方案
当两个字符不同时,不是立即返回,而是false
计算有多少对字符不同:
static boolean isPalindrome(String input)
{
int i = 0;
int last = input.length() - 1;
int differentCount = 0;
while (i < last) {
if (input.charAt(i) != input.charAt(last)) {
differentCount++;
// only return false if more than one character is different
if (differentCount > 1) {
return false;
}
}
i++;
last--;
}
return true;
}
推荐阅读
- wordpress - 在wordpress中注册自定义输入类型时如何隐藏或删除“添加新”子菜单?
- javascript - 每 2 秒重复一次 PHP 函数
- visual-studio - Visual Studio Team Services 在线 - “5 位用户免费”澄清
- ios - Swift Metal MTLCreateSystemDefaultDevice 返回 nil
- java - com.din.OSS 中构造函数的参数 0 需要找不到类型为“java.lang.String”的 bean
- python - 使用 Python 和 Pandas 合并多个 CSV 文件
- c# - UDP监听器不在不同的机器上工作
- c++ - 正则表达式模式匹配搜索在 cpp 中的无序映射
- tomcat - Tomcat 9 Http/2“错误读取请求,被忽略”
- r - R中的日期变量