【字符串】判断两字符串中的字符集是否相同
判断两字符串中包含字符是否相同,不考虑数量。
* 思路:
* 方法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 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 }
浙公网安备 33010602011771号