【字符串】判断两字符串中的字符集是否相同

判断两字符串中包含字符是否相同,不考虑数量。
 * 思路:
 * 方法1:
 * 利用解答变形词的思路,不考虑数量,则在扫描第二个字符串时候,只需判断该字符是否在辅助空间中出现过即可。
 * 方法2:
 *  利用hash映射,无论字符集是128还是256,只要将键和值存到映射表,在扫描第二个字符串只需查询是否出现即可。

 1 private static boolean check1(String s1,String s2){
 2         int []helper=new int [256];
 3         //第一遍扫描s1
 4         for (int i = 0; i <s1.length(); i++) {
 5             int c=(int)s1.charAt(i);
 6             helper[c]++;
 7         }
 8         //第二遍扫描s2
 9         for (int i = 0; i <s2.length(); i++) {
10             int c=(int)s2.charAt(i);
11             if(helper[c]==0){
12                 return false;
13             }
14         }
15         return true;    
16     }
方法1

 

 1 import java.util.HashMap;
 2 import java.util.Map;
 3     
 4 private static boolean check2(String s1,String s2){
 5         Map<Character,Integer> map=new HashMap<>();
 6         
 7         //第一遍扫描s1
 8         for (int i = 0; i <s1.length(); i++) {
 9             char c=s1.charAt(i);
10             if(map.get(c)==null){//如果该字符未出现过,就放进map;
11                 map.put(c, 1);
12             }
13         }
14         //第二遍扫描s2
15         for (int i = 0; i <s2.length(); i++) {
16             char c=s2.charAt(i);
17             if(map.get(c)==null){
18                 return false;
19             }
20         }
21         return true;    
22     }
方法2

posted on 2021-01-26 21:44  丁不煮  阅读(404)  评论(0)    收藏  举报

导航