算法汇总
以下是所有算法汇总,包括GitHub源码地址链接:力扣算法练习汇总(持续更新…)
题目
字母异位词解释:
简单理解为:两字符串长度相同,字母相同,但顺序不同。
代码
1.解体方法,如二分法
思路
代码
class Solution {
public boolean isAnagram(String s, String t) {
if(s.length() != t.length()){
return false;
}
// 存放s的key和value(出现的次数)
Map<String,Integer> map = new HashMap<>();
for(int i = 0; i < s.length(); i++){
String str = s.charAt(i) + "";
map.put(str, map.get(str) != null ? map.get(str) + 1 : 1);
}
for(int i = 0 ; i < t.length(); i++){
String str = t.charAt(i) + "";
// t中存在s中没有的元素,则return false
if(map.get(str) == null){
return false;
}else{
map.put(str, map.get(str) - 1);
}
}
for(String key : map.keySet()){
if(map.get(key) != 0){
return false;
}
}
return true;
}
}
时间和空间复杂度
2.解题方法,如暴力法
思路
代码