bool isAnagram(s1, s2): if s1 == null || s2 == null return false if s1.length() != s2.length() return false map1 = map(s1) map2 = map(s2) if map1.keys.count() != map2.keys.count(): return false for c in map1.keys(): if !map2.hasKey(c) || map1[c] != map2[c]: return false return true map map(s): map = new for c in s: if map.hasKey(c): count = map[c] map[c] = count +1 return mapWith 1 map only.
bool isAnagram(s1, s2): if s1 == null || s2 == null return false if s1.length != s2.length return false result = true map = map(s1) foreach c in s2: if !map.containskey(c) || --map[c] < 0: result = false break return result
[Hat tip to JS]
No comments:
Post a Comment