Leetcode - Valid Anagram

My code:

import java.util.Arrays;

public class Solution {
    public boolean isAnagram(String s, String t) {
        if (s == null || t == null || s.length() == 0 || t.length() == 0)
            return true;
        char[] s1 = s.toCharArray();
        char[] t1 = t.toCharArray();
        Arrays.sort(s1);
        Arrays.sort(t1);
        if (String.valueOf(s1).equals(String.valueOf(t1)))
            return true;
        else
            return false;
    }
    
    public static void main(String[] args) {
        Solution test = new Solution();
        System.out.println(test.isAnagram("a", "a"));
    }
}

这道题目本来没什么好说的。一开始题意不能理解,anangram,其实就是看两个字符串的字符,是否相同,虽然顺序不同。
最简单的方法肯定是哈希表,没意思。
这道题目让我想起了以前的一道难题,具体是什么我已经忘记了。但是他其中的一小部分就是这个题目的解法。
如果给一个string排序?
先转换成 char[]
然后调用 Arrays.sort();
然后再用 .toString() 返回去。
很简单简洁是不是?
错的,里面有个bug。
char[] temp = ….
temp.toString();
是把char[] 拼接成一个string返回去吗?
错的。
他返回的是,自己这个数组对象的内存地址。
所以使用 .toString() 方法的时候一定要谨慎又谨慎!搞清楚他返回的到底是什么。
这里,推荐使用,
String.valueOf(char[])
就转回去了。

PS:
之前我说的那道难题是这道题,也不是很难。
https://leetcode.com/problems/anagrams/

**
总结:
string sort, char[] temp.toString(); String.valueOf(char[] temp)
早上起来发现脑子根本转不了。只能做几个简单题意思下了。但是发现简单题也有挺多注意点啊。
睡眠不够啊
**

Anyway, Good luck, Richardo!

    原文作者:Richardo92
    原文地址: https://www.jianshu.com/p/20fde95ca134#comments
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞