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结局里旋风雄能打得过林田惠吗?
  • 相关阅读:
    tomcat7:deploy (default-cli) on project myproject: Cannot invoke Tomcat manager: Software caused connection abort: socket write error
    android 更新版本案例
    Tomcat运行一段时间后,自动停止关闭,To prevent a memory leak,Druid 数据库连接自动关闭, the JDBC Driver has been forcibly unregistered.
    android调试debug快捷键
    android AlertDialog控件使用
    android RecyclerView的瀑布流布局案例
    android RecyclerView的Grid布局案例
    android RecyclerView的Linear布局案例
    android 子线程使用handle修改主线线程内容
    【CF840C】On the Bench DP
  • 原文地址:https://www.cnblogs.com/crows/p/4711444.html
Copyright © 2011-2022 走看看