计算最长英语单词链

摘要:
计算最长英语单词链的题目为:大家经常玩成语接龙游戏,我们试一试英语的接龙吧:一个文本文件中有N个不同的英语单词,我们能否写一个程序,快速找出最长的能首尾相连的英语单词链,每个单词最多只能用一次。如果输入文件有一万个单词,你的程序能多快输出结果?

计算最长英语单词链的题目为:

大家经常玩成语接龙游戏,我们试一试英语的接龙吧:一个文本文件中有N 个不同的英语单词, 我们能否写一个程序,快速找出最长的能首尾相连的英语单词链,每个单词最多只能用一次。最长的定义是:最多单词数量,和单词中字母的数量无关。

统一输入文件名称:input1.txt, input2.txt

统一输出文件名称:output1.txt,

output2.txt

程序需要考虑下列异常状况:

例如,文件不存在,你的程序会崩溃么,还是能优雅地退出并给用户提示信息?

如果文件没有任何单词、只有一个单词、没有可以首尾相连的单词,程序应该如何输出?

如果输入文件有一万个单词,你的程序能多快输出结果?

思路:计算最长英语单词链,就是找到文件中可以首尾相接的单词,找到一个这样首尾相接单词数目最多的链

首先要读取文件,在代码中要有 若文件不存在,要给出提示,当文件中没有单词时输出为空,当文件里只有一个单词时,输出的就为这个单词

代码没有完全完成以上的任务

代码为:

packagepiao;
importjava.io.BufferedReader;
importjava.io.File;
importjava.io.FileInputStream;
importjava.io.FileOutputStream;
importjava.io.FileWriter;
importjava.io.IOException;
importjava.io.InputStreamReader;
importjava.util.ArrayList;
public classfind {
public static void main(String[] args) throwsIOException {
     File file = new File("D:\飘.txt");
     ArrayList<String> arrayList = new ArrayList<>();
     try{
  InputStreamReader Reader = new InputStreamReader(newFileInputStream(file));
BufferedReader buffer = newBufferedReader(Reader);
String s;
while ((s = buffer.readLine()) != null) {
arrayList.add(s);
}
buffer.close();
Reader.close();
} catch(IOException e) {
e.printStackTrace();
}
String a, b, str;
String[] arr = newString[arrayList.size()];
for (int i = 0; i < arrayList.size(); i++) {
arr[i] =arrayList.get(i);
}
String[] s2 = newString[arrayList.size()];
for (int i = 0; i < arrayList.size(); i++) {
str =arr[i];
a = arr[i].substring(arr[i].length() - 1, arr[i].length());
for (int j = 0; j < arrayList.size(); j++) {
b = arr[j].substring(0, 1);
if (arr[i].equals(arr[j]) == false &&a.equals(b)) {
str = str +arr[j];
a = arr[j].substring(arr[j].length() - 1, arr[j].length());
}
b = null;
}
s2[i] =str;
}
File filew = new File("D:\飘.txt"); 
FileWriter out = newFileWriter(filew); 
for (int i = 0; i < s2.length; i++) {
out.write(s2[i] + "
");
}
out.close();

System.out.println("输出成功");
}
}

运行结果为:计算最长英语单词链第1张

免责声明:文章转载自《计算最长英语单词链》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Windows Server 2008 R2远程桌面服务配置和授权激活(转)Struts2的下载和安装下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

ExtJs控件属性配置详细

Ext.form.TimeField: 配置项:maxValue:列表中允许的最大时间maxText:当时间大于最大值时的错误提示信息minValue:列表中允许的最小时间minText:当时间小于最小值时的错误提示信息increment:两个相邻选项间的时间间隔,默认为15分钟format:显示格式,默认为“g:i A”。一般使用“H:i:s”H:带前缀...

js和java中使用join来进行数组元素的连接

  合理地使用join来进行数组中元素的连接,代码简洁,比自己编码也更为方便。   js中join的用法 var arr = new Array(3) arr[0] = "a" arr[1] = "b" arr[2] = "c" arr.join(".") a.b.c ------------------ arr.join(",") a,b,c   ja...

记一次内存泄漏DUMP分析

自从进入一家创业公司以后,逐渐忙成狗,却无所收获,感觉自身的技术能力用武之地很少,工作生活都在业务逻辑中颠倒。 前些天线上服务内存吃紧,让运维把DUMP拿下来,分析一下聊以自慰。 先来统计一下大对象信息 0:000> !dumpheap -min 85000 -stat Statistics: MT Count...

php string

一.字符串类型        php一共有8中数据类型        4种基本类型            boolean            integer            float(double)            string        2种符合类型            array            object       ...

JavaMail发送邮件(超详细)

一:邮件发送的基本概念   本文我将阐述使用JavaMail方式发送和接收Email的详细说明,本博客本着以后遇到类似的邮件发送需求可以直接把代码粘过去直接使用,快捷方便省时间,对于刚接触的JavaMail的朋友们还是把文章过一遍,虽然本文不是最好的,但是我可以保证你能成功发送邮件;   关于邮件还有一些基本知识我将在下面简单介绍,关于邮件发送和接收的流程...

Java Servlet 中文API说明

JavaServlet中文API说明 这份文档描述了Java Servlet API的最新版本2.1版。所以,这本书对于Servlet的开发者及servlet引擎的开发者同样适用。 Java Servlet API的组成 Java Servlet API由两个软件包组成:一个是对应HTTP的软件包,另一个是不对应HTTP的通用的软件包。这两个软件包的同时...