zoukankan      html  css  js  c++  java
  • java实现近义词维护

    题目要求:
    一、近义词维护 给定接口,设置两个单词相互近义。近义词具有相互传递性,如果A和B为近义词,B和C是近义词,那么A、B、C都为近义词。要求提供接口,查询给定的两个但是是否是近义词关系。并且能提供接口清除所有的近义词关系。 接口说明 /**  * 设置2个单词为近义词  * @param word1 单词一  * @param word2 单词二  * @return 0为成功,-1为失败或其他异常  */ public int setSynonyms(String word1, String word2) /**  *判断2个单词是否为近义词(同一单词视为近义词)  *@param word1 单词一  *@param word2 单词二  *@return 为近义词返回true,否则返回false  */ public boolean isSynonyms(String word1, String word2) /**  * 清除单词之间的近义词关系  */ public void clearRelations()

    程序如下:首先设定A与B的近义词关系,再设定B与C的近义词关系,B与C以及A与C之间都是近义词关系,所以前两次为true,当执行clear方法后,map清空,最后一次打印为false
     1 import java.util.HashMap;
     2 import java.util.Iterator;
     3 import java.util.Map;
     4 import java.util.Scanner;
     5 public class Synonyms {
     6     private static Boolean isSyn = false;
     7     static Map<String, String> map = new HashMap<String, String>();
     8     public static void main(String[] args) {
     9         Scanner scan = new Scanner(System.in);
    10         String line = scan.nextLine();
    11         String[] str = line.split(" ");
    12         System.out.println(setSynonyms(str[0], str[1]));
    13         String line2 = scan.nextLine();
    14         String[] str2 = line2.split(" ");
    15         System.out.println(setSynonyms(str2[0], str2[1]));
    16         System.out.println(isSynonyms(str2[0], str2[1]));
    17         System.out.println(isSynonyms(str[0], str2[1]));
    18         clearRelations();
    19         System.out.println(isSynonyms(str2[0], str2[1]));
    20         scan.close();
    21     }
    22 
    23     public static int setSynonyms(String word1, String word2) {
    24         map.put(word1, word2);
    25         map.put(word2, word1);
    26 
    27         if (word1 != "" & word2 != "") {
    28             // isSyn = true;
    29             return 0;
    30         } else
    31             return -1;
    32 
    33     }
    34 
    35     public static boolean isSynonyms(String word1, String word2) {
    36         if (!map.containsKey(word1)) {
    37             isSyn = false;
    38         }
    39         if (map.containsKey(word1)) {
    40             for (String key : map.keySet()) {
    41                 for (int i = 0; i < key.length(); i++) {
    42                     String value = map.get(word1);
    43                     String value2 = map.get(value);
    44                     if (value2.equals(word2)) {
    45                         isSyn = true;
    46                     } else if (word2.equals(map.get(word1)))
    47                         isSyn = true;
    48                 }
    49             }
    50 
    51         } else
    52             isSyn = false;
    53         return isSyn;
    54     }
    55 
    56     public static void clearRelations() {
    57         Iterator it = map.keySet().iterator();
    58         String key = null;
    59         while (it.hasNext()) {
    60             key = it.next().toString();
    61             it.remove();
    62 
    63         }
    64     }
    65 }
    热血高校3结局里旋风雄能打得过林田惠吗?
  • 相关阅读:
    一些程序员必备的英语词汇及释义
    ETL工具Talend最佳实践
    spark-submit使用yarn cluster模式时如何获取applicationId?
    On-heap vs Off-heap 堆内内存与堆外内存
    【Kail 学习笔记】kali信息搜集工具之IKE-Scan
    【Kail 学习笔记】kali信息搜集工具之Sparta(斯巴达)
    渗透常用命令
    渗透测试中常用WINDOWS命令
    Jvoke:Java环境下调用系统命令
    SpringCloud以及Nacos服务注册IP选择问题
  • 原文地址:https://www.cnblogs.com/crows/p/4711444.html
Copyright © 2011-2022 走看看