1.4 Write a method to decide if two strings are anagrams or not.
这个题目最简单的方法应该就是排序了吧,排序偷懒了,直接用的api;另外一个就是计算每个字符出现的次数。
package Question1_4;
import java.util.Arrays;
public class Question1_4
{
public static void main(String[] args)
{
String string1 = new String("abcaeef");
String string2 = new String("cbaafee");
Question1_4 q = new Question1_4();
System.out.println(q.IsAnagram2(string1, string2));
}
public boolean IsAnagram1(String string1, String string2)
{
if (string1.length() != string2.length())
return false;
return sortString(string1).equals(sortString(string2));
}
private String sortString(String string)
{
char[] ch = string.toCharArray();
Arrays.sort(ch);
return new String(ch);
}
public boolean IsAnagram2(String string1, String string2)
{
if (string1.length() != string2.length())
return false;
char[] chars = new char[256];
for (int i = 0; i < string1.length(); i++)
chars[string1.charAt(i)]++;
for (int i = 0; i < string2.length(); i++)
chars[string2.charAt(i)]--;
for (int i = 0; i < 256; i++)
if (chars[i] != 0)
return false;
return true;
}
}