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结局里旋风雄能打得过林田惠吗?
  • 相关阅读:
    虚拟环境- virtualenvwrapper
    数据库可视化工具--DBeaver
    关于数据库 SQL 语句性能优化的52 条 策略。
    软件安全测试点以及测试方法
    常用功能-添加、修改功能测试点
    这些自动化测试框架知识你还不知道?
    Postman接口功能测试介绍
    python+SMTP发送邮件测试报告
    数据库经典查询语句与练习题
    Selenium 功能总结大集合
  • 原文地址:https://www.cnblogs.com/crows/p/4711444.html
Copyright © 2011-2022 走看看