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

    先从文件中把文本读取出来,,s1[i].substring(0, 1)是取字符串头,然后用 s1[j].substring(s1[j].length()-1);这个substring方法取字符串尾,搜索取头尾是,在网上看到了有个容器法,应用到本题目中,即设置一个list容器,从第一个单词开始,就把它加入容器中,以它的尾字母作为key值,然后依次循环比较,找到首字母等于key的单词,就把它也存入容器,并将key值作为它的尾部。然后在这层之外再套一层循环,考虑到每个单词都作为第一个单词的情况,再将每次循环所得到的容器加入到一个新的容器中,容器中套容器。最后比较容量最大的容器就是最长的单词链。

    package letteron;
     
    import java.io.*;
    import java.util.*;
     
     
     
     
    public class Letteron {
     
        public static void main(String[] args)throws FileNotFoundException, IOException  {
            // TODO 自动生成的方法存根
     
            File file=new File("F:/java开发/input.txt");
            File file2=new File("F:/java开发/output.txt");
     
             
            if(!file.exists())
            {
                System.out.println("文件不存在!");
            }
            else if(file.exists() && file.length() == 0) { 
                System.out.println("文件为空!"); 
            } //判断是否文件为空
            else
            {
                BufferedReader br=new BufferedReader(new FileReader(file));
                BufferedWriter bw = new BufferedWriter(new FileWriter("F:/java开发/output.txt")) ;
                 
     
                String s;
                int i,j;
                ArrayList<ArrayList<String>> listall=new ArrayList();
                String key;
                s=br.readLine();
                //将文本文件中的所有信息变为字符串
                String []s1=s.split(" ");//以空格为分割划分每个单词
                if(s1.length==1)
                    System.out.println("单词数为1");
                else
                {
                         
               for(i=0;i<s1.length;i++)
               {
                   System.out.println(s1[i]);
               }//测试录入
                
               for(j=0;j<s1.length;j++)
               {
                   ArrayList<String> list=new ArrayList<String>();
                   key=s1[j].substring(s1[j].length()-1);
                   list.add(s1[j]);
                   System.out.println("key:"+key);
                   for(i=1;i<s1.length;i++)
                    {
                       
                   if(key.equals(s1[i].substring(0, 1)))
                   {
                       list.add(s1[i]);
                       key=s1[i].substring(s1[i].length()-1);
                   }
                   else
                       continue;
                    }
                   listall.add(list);
               }
               int max=0;
               int count=0;
                
               for(i=0;i<listall.size();i++)
               {
                   if(max<listall.get(i).size())
                   {
                       max=listall.get(i).size();
                       count=i;
                   }
               }
               System.out.println("排位"+count);
               System.out.println("最长单词链为:");
               for(i=0;i<listall.get(count).size();i++)
               {
                   System.out.println(listall.get(count).get(i));
                   bw.write(listall.get(count).get(i));
                   bw.write(" ");
               }
                br.close();
                bw.close();
                }
            }
            }
             
        }
  • 相关阅读:
    多测师讲解unittest介绍及自动化测试实现流程_高级讲师肖sir
    多测师讲解常用的测试工具分为10类_高级讲师肖sir
    多测师讲解接口测试 _面试题003_高级讲师肖sir
    多测师接口测试 --常见的接口面试题目002---高级讲师肖sir
    Linux的mysql搭建
    学完爬虫的笔记
    postman测试实例--断言
    jemeter安装步骤
    selenium的显示等待和隐式等待区别
    loadrunner录制不了浏览器
  • 原文地址:https://www.cnblogs.com/liuxiaojieqqq/p/11071561.html
Copyright © 2011-2022 走看看