在 java 中检查字符串是否只有一个回文字符不匹配
Checking if string has only one character mismatch of palindrome in 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
添加一个 boolean
标记来跟踪您是否已经找到一对不匹配的字符:
static boolean isPalindrome(String input)
{
boolean firstMismatch = true;
int i = 0;
last = input.length() - 1;
while (i < last) {
if (input.charAt(i) != input.charAt(last)) {
if (firstMismatch) {
firstMismatch = false;
} else {
return false;
}
}
i++;
last--;
}
return 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;
}
我必须编写一个布尔函数,它接受一个字符串并检查字符串是否为回文 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
添加一个 boolean
标记来跟踪您是否已经找到一对不匹配的字符:
static boolean isPalindrome(String input)
{
boolean firstMismatch = true;
int i = 0;
last = input.length() - 1;
while (i < last) {
if (input.charAt(i) != input.charAt(last)) {
if (firstMismatch) {
firstMismatch = false;
} else {
return false;
}
}
i++;
last--;
}
return 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;
}