zoukankan      html  css  js  c++  java
  • 计算最长英语单词链

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

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

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

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

    output2.txt

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

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

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

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

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

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

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

    代码为:

    package piao;
    import  java.io.BufferedReader;
    import  java.io.File;
    import  java.io.FileInputStream;
    import  java.io.FileOutputStream;
    import  java.io.FileWriter;
    import  java.io.IOException;
    import  java.io.InputStreamReader;
    import java.util.ArrayList;
    public class find {
    public static void main(String[] args) throws IOException {
         File file = new File("D:\飘.txt");
         ArrayList<String> arrayList = new ArrayList<>();
         try {
      InputStreamReader Reader = new InputStreamReader(new FileInputStream(file));
    BufferedReader buffer = new BufferedReader(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 = new String[arrayList.size()];
    for (int i = 0; i < arrayList.size(); i++) {
    arr[i] = arrayList.get(i);
    }
    String[] s2 = new String[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 = new FileWriter(filew); 
    for (int i = 0; i < s2.length; i++) {
    out.write(s2[i] + "
    ");
    }
    out.close();
    
    System.out.println("输出成功");
    }
    }

    运行结果为:

  • 相关阅读:
    Ubuntu下iperf的安装
    frp内网穿透协助内网程序(如微信相关)开发
    Uncaught Error: Call to undefined function mcrypt_get_iv_size() 解决办法
    CentOS安装了iRedMail停用Amavisd + ClamAV + SpamAssassin
    申请Let’s Encrypt通配符HTTPS证书(certbot ACME v2版)
    关于ThinkPHP在Nginx服务器下因PATH_INFO出错的解决方法
    本地开发环境伪装成SSL连接的实现
    Web基础之日志
    Linux基础之防火墙
    面向接口及单例工厂随笔
  • 原文地址:https://www.cnblogs.com/zhaoxinhui/p/11003380.html
Copyright © 2011-2022 走看看