我想问一下从文件中的多行找到回文(句子 - 从一个单词集合中构建一个回文短语)。
例如文件结构如下
太
文字
热
文字
到
文字
hoot
输出应该太热了,但我不知道如何以这种方式实现它。
我已经创建了简单的功能来找到单个回文,如果你可以帮我改进它会很高兴
public static boolean findPalindrome(String s) {
int low, high;
low = 0;
high = s.length() - 1;
while (low < high) {
if (s.charAt(low) != s.charAt(high)) {
return false;
}
low++;
high--;
}
return true;
我使用nextLine()方法从文件加载单词
提前谢谢
答案 0 :(得分:1)
我可以告诉你如何反转String
以确定它是否是回文。我不知道如何根据您的要求有效地建立一个回文短语。要反转String,请将原始String
传递给StringBuilder
构造函数,并使用其reverse
方法反转字符串:
String str = "word";
StringBuilder buff = new StringBuilder(str);
boolean isPalindrome = str.equalsIgnoreCase(buff.reverse().toString());
如果原始字符串和反向字符串相等,则该字是回文。您将不得不弄清楚如何构建短语。
要强制它&#34;,你必须抓住一个单词并查找文件中以关键字开头的相同字母结尾的所有单词。然后,您将获取第二个字母并从列表中删除新位置中没有匹配字母的单词。然后你必须弄清楚如何获得更多的话,等等。我不知道如何继续。但基本上,你必须抓住一个单词,然后与文件中的其他单词进行逐字符比较,直到你消耗文件中的所有单词。如果单词是有序的,那可能不会太糟糕。但是,如果单词出现故障,你就必须重新排列单词并重试。