gpt4 book ai didi

java - 检查一个句子是否有相同的词向前和向后

转载 作者:行者123 更新时间:2023-11-29 04:23:56 25 4
gpt4 key购买 nike

我正在尝试检查一个句子是否前后相同或“句子回文”。一句“你能笼中燕子,你能不能,但你不能吞下笼子,你能吗?”应该返回 (True) 作为回文。忽略所有不是字母的内容。

我的问题:不确定如何具体比较单词。这目前适用于检查它们是否为回文的单词,但我需要弄清楚要更改什么以比较每个单词。

public static boolean isWordPalindrome(String input) {
Deque<Character> q = new LinkedList<>( );
Deque<Character> q2 = new LinkedList<>( );

Character letter; // One character from the input string
int mismatches = 0; // Number of spots that mismatched
int i; // Index for the input string
int x;

for (i = 0; i < input.length( ); i++)
{
letter = input.charAt(i); // read next character in the string
if (letter.toString().equals(',') || letter.toString().equals('"') || letter.toString().equals('?') || letter.toString().equals('!') || letter.toString().equals('.') || letter.toString().equals(' ')) {
//throwaway.add(letter); //ignore above chars and put in throwaway stack
}
if (Character.isLetter(letter)) // if letter put into q's
{
q.add(letter);
q2.addFirst(letter);
}
} // end of for loop


System.out.println("q: " + q);
System.out.println("q2:" + q2);

while (!q.isEmpty( ))
{
if (!Objects.equals(q.remove(), q2.remove()))
mismatches++;
}

最佳答案

我会删除所有特殊字符,用空格拆分字符串并检查列表是否“对称”:

private static boolean isSentancePalindrom(String sentence) {
String[] words = sentence.replaceAll("[^a-zA-Z ]", "").split("\\s+");
for (int i = 0; i < words.length / 2; ++i) {
if (!words[i].equalsIgnoreCase(words[words.length - i - 1])) {
return false;
}
}

return true;
}

关于java - 检查一个句子是否有相同的词向前和向后,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47420072/

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