本文主要是介绍242、有效的字母异位词,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
方法一:
时间复杂度:O(n log n)
空间复杂度:O(log n)
// 先字符串转化成字符数组
// 字符排序,比较
public boolean isAnagram(String s, String t){int m = s.length();int n = t.length();if(m != n) return false;char[] str1 = s.toCharArray();char[] str2 = t.toCharArray();Arrays.sort(str1);Arrays.sort(str2);// Arrays.sort()是快排,深度lognreturn Arrays.equals(str1, str2);
}
方法二:
时间复杂度:O(n)
空间复杂度:O(1)
public boolean isAnagram(String s, String t){int m = s.length();int n = t.length();if(m != n) return false;int[] table = new int[26];for(char i : s.toCharArray()) table[i - 'a']++;for(char i : t.toCharArray()) table[i - 'a']--;for(int i = 0; i < 26; i++){if(table[i] != 0) return false;}return true;
}
这篇关于242、有效的字母异位词的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!