首页 > 其他分享 >2月27日每日总结

2月27日每日总结

时间:2023-02-27 21:26:51浏览次数:47  
标签:总结 27 word String chain HashSet 每日 length new

今天下午是一周一度的Java课,在课上,老师让我们做了一个小练习,但我还没有完全弄出来,下灭是我暂时的成果:

package aaa;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Scanner;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;

public class aaa {

public static void main(String[] args) throws IOException {
Scanner scanner = new Scanner(new File("input.txt"));
HashSet<String> wordSet = new HashSet<String>();
List<String> wordList = new ArrayList<String>();
int maxLength = 0;
String longestChain = "";

// 将文件中的单词存入集合和列表中
while (scanner.hasNext()) {
String word = scanner.next().toLowerCase();
wordSet.add(word);
wordList.add(word);
}
scanner.close();

// 遍历列表,以每个单词作为起点查找最长的单词链
for (String word : wordList) {
HashSet<String> usedWords = new HashSet<String>();
String chain = word;
usedWords.add(word);
int length = findChain(wordSet, usedWords, chain);
if (length > maxLength) {
maxLength = length;
longestChain = chain;
}
}

// 将最长的单词链写入输出文件中
FileWriter writer = new FileWriter(new File("output.txt"));
writer.write(longestChain);
writer.close();
}

// 递归查找单词链
private static int findChain(HashSet<String> wordSet, HashSet<String> usedWords, String chain) {
int length = chain.split(" ").length;
String lastWord = chain.split(" ")[length - 1];
int maxLength = length;
for (String word : wordSet) {
if (!usedWords.contains(word) && word.charAt(0) == lastWord.charAt(lastWord.length() - 1)) {
HashSet<String> newUsedWords = new HashSet<String>(usedWords);
newUsedWords.add(word);
int newLength = findChain(wordSet, newUsedWords, chain + " " + word);
if (newLength > maxLength) {
maxLength = newLength;
}
}
}
return maxLength;
}

}

标签:总结,27,word,String,chain,HashSet,每日,length,new
From: https://www.cnblogs.com/wass/p/17161923.html

相关文章

  • 2023年2月27日学习总结
    今天上午继续学习了androidapp的开发,知道了如何创建数据库,创建表,和页面间数据的传递。下午上课时按照老师的要求要做一个对文本文件中英文单词的接龙,找出最长的单词链,刚......
  • 学习记录(2.27)
    学习时长:6h代码行数:约160行今天继续进行了小游戏flappychicken的开发,成功debug了两次,解决了鸡无法触发管道侧边碰撞的问题,并且对地图进行了一些优化。......
  • 2023.2.27
    课堂练习01题目:计算最长英语单词链。一、题目内容:大家经常玩成语接龙游戏,我们试一试英语的接龙吧:一个文本文件中有N 个不同的英语单词,我们能否写一个程序,快速找出最长......
  • 2.27学习总结
    今天学习了英语链packagepiao;importjava.io.*;importjava.util.ArrayList;publicclasscheck{ publicstaticvoidmain(String[]args)throwsIOException { Fi......
  • 每日小结(7)
    今天下午做了一个老师布置的测试,单词链的操作,在那没有一点头绪,我就找csdn,chatgpt去搜,也没有个所以然importjava.io.BufferedReader;importjava.io.File;importjava.io.......
  • 毕设助教工作总结
    一、助教工作的具体职责和任务协助老师对毕业设计全流程进行有效管理与另一助教协商合作共同完成任务帮助老师整理有关毕设的资料,收集学生选题信息及结果整合积极沟通......
  • edu总结
    \(\text{edu22}\)\(\text{813A}\)贪心\(\text{813B}\)指数枚举,排序\(\text{813C}\)博弈,\(\text{LCA}\)\(\text{813D}\)无锡班发过的网络流、贪心\(\text{813E}\)......
  • [20230227]探究v$session.SQL_EXEC_ID在共享池(补充).txt
    [20230227]探究v$session.SQL_EXEC_ID在共享池(补充).txt--//http://blog.tanelpoder.com/2011/10/24/what-the-heck-is-the-sql-execution-id-sql_exec_id/--//上个星期测......
  • 每日一练(剑指offer)旋转数组的最小数字
    描述有一个长度为n的非降序数组,比如[1,2,3,4,5],将它进行旋转,即把一个数组最开始的若干个元素搬到数组的末尾,变成一个旋转数组,比如变成了[3,4,5,1,2],或者[4,5,1,2,3]这样的......
  • 每日总结23.2.27
    今天用了大约一个小时的时间学习了 相对布局RelativeLayout,并且对昨天学习的线性布局进行了复习如下图;然后学习了TextView其中的一部分Button但是由于教学视频中的And......