判断两个string是否由相同的字母元素组成。 首先可以从string长度上做一个初步的判断。
利用一个map记录s中各个字母的出现情况,在利用这个map判断t中是否有新的字母存在来判断两个string是否相同字母构成。
还有一种较为简单的办法就是用一个26的数组代替map来记录26个字母的出现情况,更加省空间
public class Solution {
public boolean isAnagram(String s, String t) {
if( s.length() != t.length() )
{
return false;
}
int len = s.length();
if( len == 0 )
{
return true;
}
Map<Character,Integer> map = new HashMap<Character,Integer>();
for( int i=0;i<len;i++ )
{
char c = s.charAt(i);
if( map.containsKey(c) )
{
int temp = map.get(c);
map.put(c,temp+1);
}
else
{
map.put(c,1);
}
}
for( int i=0;i<len;i++ )
{
char c = t.charAt(i);
if( !map.containsKey(c) )
{
return false;
}
if( map.get(c) == 0 )
{
return false;
}
int temp = map.get(c);
map.put(c,temp-1);
}
return true;
}
}