• 最长英语单词链


    设计思想:读取txt文件内容,把一篇文章分割成一个个单词存入数组,定义一个数组储存最长单词链,通过遍历找出最长单词链,最后写入另一个txt文件。

    package words;
    import java.io.File;
    import java.io.FileNotFoundException;
    import java.io.FileOutputStream;
    import java.io.IOException;
    import java.io.PrintStream;
    import java.util.Scanner;
    public class lian {
     
     public static void OutputStream(String max) {
    //  将数据写入文件
            PrintStream ps = null;
            try {
                ps = new PrintStream(new FileOutputStream("D:\output.txt"));
                //将标准输出重定向到ps输出流
                System.setOut(ps);
                //向标准输出输出一个字符串
                System.out.println(max);
                //向标准输出输出一个对象
            } catch (IOException ex) {
                ex.printStackTrace();
            } finally {
                if (ps != null) {
                    ps.close();
                }
            }
     }
     public static void main(String[] args) throws FileNotFoundException {
      File file = new File("D:\input.txt");// 读取文件
      if (!file.exists()) {// 如果文件打不开或不存在则提示错误
       System.out.println("文件不存在");
       return;
      }else {
       if(file.exists() && file.length() == 0) {  
           System.out.println("文件为空!");  
           return;
       }  
      }
      long startTime = System.currentTimeMillis();
      String[] strs=new String[1000000];
      Scanner x = new Scanner(file);
      int i=0;
      boolean flag=false;
      while(x.hasNextLine()) {
       String[] str=x.nextLine().split("\W+");
       for(int ms=0;ms<str.length;ms++) {
        if(!str[ms].equals("")&&str[ms].length()>2) {
         flag=false;
    //     System.out.println(str[ms]);
         if(i!=0) {
          for(int t=0;t<i;t++) {
           if(!str[ms].equals(strs[t])) {
            flag=true;
           }
          }
         }else {
          flag=true;
         }
         
         if(flag) {
          strs[i]=str[ms];
          i++;
         }
         
        }
        
       }
      }
      if(i==1) {
       System.out.println("该文件只有一个单词!无法实现词语接龙");
      }
      String sentence = "";
      String word="";
      String max="";
      for(int m=0;m<i;m++) {
       sentence = strs[m];
       word = sentence;
       for(int j=m+1;j<i;j++) {
        if(strs[j].toLowerCase().subSequence(0, 1).equals(word.toLowerCase().subSequence(word.length()-1, word.length()))) {
         word = strs[j];
         sentence+="-"+word;
        }
       }
       
       if(sentence.indexOf("-")!=-1) {
        if(sentence.length()>max.length()) {
         max = sentence;
        }
    //    System.out.println(sentence);
       }
       
      }
      long endTime = System.currentTimeMillis();
      System.out.println(endTime-startTime+"ms");
      System.out.println(i);
      if(max.length()!=0) {
       OutputStream(max);
    //   System.out.println(max);
      }else {
       System.out.println("没有首尾相连");
      }
      
     }
    }

  • 相关阅读:
    【题解】 P1373 小a和uim之大逃离
    题解 CF576C 【Points on Plane】
    题解 P4799 【[CEOI2015 Day2]世界冰球锦标赛】
    【题解】[JSOI2008]最大数
    题解 P3389 【【模板】高斯消元法】
    【模板】矩阵加速
    【模板】树状数组上的差分数组
    tarjan求强连通分量(模板)
    我好菜系列——map查找
    trie树的应用;
  • 原文地址:https://www.cnblogs.com/sljslj/p/11071363.html
Copyright © 2020-2023  润新知