[抄题]:
Given two strings s and t, write a function to determine if t is an anagram of s.
For example,
s = "anagram", t = "nagaram", return true.
s = "rat", t = "car", return false.
Note:
You may assume the string contains only lowercase alphabets.
Follow up:
What if the inputs contain unicode characters? How would you adapt your solution to such case?
[暴力解法]:
时间分析:
空间分析:
[优化后]:
时间分析:
空间分析:
[奇葩输出条件]:
[奇葩corner case]:
[思维问题]:
[一句话思路]:
字母就用26,字符用256
[输入量]:空: 正常情况:特大:特小:程序里处理到的特殊情况:异常情况(不合法不合理的输入):
[画图]:
[一刷]:
[二刷]:
[三刷]:
[四刷]:
[五刷]:
[五分钟肉眼debug的结果]:
[总结]:
[复杂度]:Time complexity: O(n) Space complexity: O(n)
[英文数据结构或算法,为什么不用别的数据结构或算法]:
[关键模板化代码]:
[其他解法]:
[Follow Up]:
[LC给出的题目变变变]:
49. Group Anagrams 打碎
[代码风格] :
class Solution { public boolean isAnagram(String s, String t) { //ini int[] chars = new int[26]; //for loop, +s, -t for (int i = 0; i < s.length(); i++) { chars[s.charAt(i) - 'a']++; } for (int j = 0; j < t.length(); j++) { chars[t.charAt(j) - 'a']--; } //return i != 0 for (int i = 0; i < chars.length; i++) { if (chars[i] != 0) return false; } return true; } }