gpt4 book ai didi

java - 忽略 isPalindrome() 方法中的字母 - Java

转载 作者:行者123 更新时间:2023-12-02 07:09:13 25 4
gpt4 key购买 nike

我想知道如何修改以下方法以在检查字符串是否为回文时忽略某个字母并将其作为通配符...

示例:“wows”,在这种情况下该方法应返回 false,但是

"pat",“t”可以是通配符(视为 p),因此返回 true

“job”,同样,b 可以是通配符并被视为 j,因此方法返回 true。

这就是我到目前为止所拥有的,我有一个单独的方法忽略特殊字符和空格,因此不需要在这篇文章中考虑。

private static boolean checkPalindrome2(String word) {
if(word.length() < 2) {
return true;
}
char first = word.charAt(0);
char last = word.charAt(word.length()-1);
if(first != last) {
return false;
}
else {
return checkPalindrome2(word.substring(1,word.length()-1));
}
}

这是我的测试课,

public class testPalindromes {

public static void main(String[] args) {
//if (Palindromes.isPalindrome("a") == true) {
// System.out.println("true");
//} else {
// System.out.println("false");
//}

// block above is the same as this
// isPalindrome already returns true or false,
// and true and false can be printed as strings
System.out.println(isPalindrome("a"));

if (Palindromes.isPalindrome("cat") == true) {
System.out.println("true");
} else {
System.out.println("false");
}
if (Palindromes.isPalindrome("w o w") == true) {
System.out.println("true");
} else {
System.out.println("false");
}
if (Palindromes.isPalindrome(" a ") == true) {
System.out.println("true");
} else {
System.out.println("false");
}
if (Palindromes.isPalindrome("mom!") == true) {
System.out.println("true");

if (Palindromes.isPalindrome2("cat")==true){
System.out.print("true");
} else {
System.out.println("false");
}

}

}

}

isPalindromes2 是一个调用上面的 checkPalindrome2 方法的方法,我的测试类中的最后一个案例(单词 cat)应该返回 true,因为 t 将是通配符字母(通配符再次如上所述,替换为 c 制作 cat,cac 其中是回文)

提前感谢所有帮助/输入!!!!ps,我特意实现了递归方法。

最佳答案

只需在您的基本情况中添加额外的条件即可:

// both first and last have to NOT be the special character
// and first has to not equal last for this to return false
if(first != special && last != special && first != last)
return false;
else
return checkPalindrome(word.substring(1,word.length()-1));

关于java - 忽略 isPalindrome() 方法中的字母 - Java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15736733/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com