[LeetCode] 242. Valid Anagram
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.
s = "anagram", t = "nagaram", return true.
s = "rat", t = "car", return false.
Note:
You may assume the string contains only lowercase alphabets.
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?
What if the inputs contain unicode characters? How would you adapt your solution to such case?
Thought process:
Iterate through both strings, count the number of each character, and compare the counts.
Solution:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | class Solution { public boolean isAnagram(String s, String t) { int[] count = new int[26]; for (char c : s.toCharArray()) { count[c - 'a']++; } for (char c : t.toCharArray()) { count[c - 'a']--; } for (int i : count) { if (i != 0) { return false; } } return true; } } |
Time complexity: O(s + t).
Follow-up: initialize count array to have a length of 256.
Comments
Post a Comment