【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.
思路:看一个字符串是否是另一个字符串乱序形成的,这里面首先要考虑重复字母的情况,并且考虑时间空间复杂度,如果字符串很长的话。通过遍历其中一个字符串,逐个比较是否contains的方法不满足复杂度要求。所以考虑使用一个数组,索引是字母,值是这个字母出现的频率,两个字符串都指向这个数组,一个字符串增加频率,一个减小,然后for循环遍历这个数组,如果有非0值则返回FALSE
public class Solution { public boolean isAnagram(String s, String t) { if(s.length()!=t.length()){ return false; } int[] count = new int[26]; for(int i=0;i<s.length();i++){ count[s.charAt(i)-‘a‘]++; count[t.charAt(i)-‘a‘]--; } for(int i:count){ if(i!=0){ return false; } } return true; } }
时间: 2024-10-10 15:57:31