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!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 背景 一年多以前我在知乎上答了有关LeetCode的问题, 分享了一些自己做题目的经验。 张土汪:刷leetcod...
    土汪阅读 13,034评论 0 33
  • 判断两个String是否所有字符是一样的,只是顺序有可能不同。 我觉得最简单的解法就是直接将两个string都排序...
    98Future阅读 122评论 0 0
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 35,203评论 18 399
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 137,150评论 19 139
  • 投资其实很简单 价值投资,本身其实很简单,比如一个东西值1美元,我40美分买了,然后它每年以固定的比例增长,增长几...
    一哥论股阅读 296评论 0 0

友情链接更多精彩内容