题目
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.
Note:You may assume the string contains only lowercase alphabets.
思路
思路一:可以将String排序,然后判断是否相等,如果相等就说明是异构的。
思路二:其实还有一种思路,就是统计,统计每一个不同字母的次数,但是这个太麻烦了。
有意思的点
通过这题目可以明白,java中是没有将String这个类型排序的内置函数的,在so上搜了一下,这个方式是最简单的了。先转化为char[]的数组,然后使用Array.sort(),进行排序,最后在转化为String类型。
代码:
public class Solution {
public boolean isAnagram(String s, String t) {
char[] chars = s.toCharArray();
Arrays.sort(chars);
s = new String(chars);
char[] chars2 = t.toCharArray();
Arrays.sort(chars2);
t = new String(chars2);
return s.equals(t);
}
}
下面是Java 如何反转String的方法
String hi = "hello,world";
hi = new StringBuilder(hi).reverse().toString()