哈希表
HashTable
242.有效字母异位词
【思考】
1.排序O(NlgN)
2.Map计数O(N)
这个时候用一个哈希表来实现,而字母有26个正好对应一个26长度的数组,来存储也就是一个哈希表。
【实现代码】
package leetcode_50;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
public class Leetcode_242 {
public static void main(String[] args){
String s="anagram";
String t="nagaram";
boolean result=false;
result=isAnagram(s,t);
System.out.print(result);
}
private static boolean isAnagram(String s, String t) {
if(s.length()!=t.length())
return false;
int[] nums=new int[26];
for(int i=0;i<s.length();i++){
nums[s.charAt(i)-'a']++;
nums[t.charAt(i)-'a']--;
}
for(int i=0;i<26;i++){
if(nums[i]!=0)
return false;
}
return true;
}
}
本文探讨了如何使用哈希表高效地判断两个字符串是否为有效的字母异位词,通过计数字符出现次数的方法,实现了O(N)的时间复杂度,避免了排序带来的O(NlogN)开销。

605

被折叠的 条评论
为什么被折叠?



