坚持真的好难啊,我因为答辩写报告很多事情,六级也没好好准备,算法题也没好好写
383. 赎金信
题目:


题解:
java
class Solution {
public boolean canConstruct(String ransomNote, String magazine) {
Map<Character,Integer> mm = new HashMap<>();
for(int i=0;i<magazine.length();i++) {
mm.put(magazine.charAt(i), mm.getOrDefault(magazine.charAt(i),0)+1);
}
for(int i=0;i<ransomNote.length();i++) {
Character c = ransomNote.charAt(i);
if(mm.containsKey(c)&&mm.get(c)>=1) {
mm.replace(c,mm.get(c)-1);
}
else {
return false;
}
}
return true;
}
}
205. 同构字符串
题目:


题解:
java
class Solution {
public boolean isIsomorphic(String s, String t) {
Map<Character,Character> map = new HashMap<>();
Map<Character,Character> rmap = new HashMap<>();
if(s.length()!=t.length()) {
return false;
}
for(int i=0;i<s.length();i++) {
Character ss = s.charAt(i);
Character tt = t.charAt(i);
//正向判断
//判断map中是否包含ss中的字符
if(map.containsKey(ss)) {
//判断是否为映射的字符
//如果不等于
if(map.get(ss) != tt) {
//直接返回false
return false;
}
}
else {
//进行设置对应的映射字符
map.put(ss, tt);
}
//进行反向判断一下
//判断map中是否包含tt中的字符
if(rmap.containsKey(tt)) {
//判断是否为映射的字符
//如果不等于
if(rmap.get(tt) != ss) {
//直接返回false
return false;
}
}
else {
//进行设置对应的映射字符
rmap.put(tt, ss);
}
}
return true;
}
}