Leetcode P0242"Valid Anagram" 题解

2020/12/07 Leetcode

博文中会简要介绍Leetcode P0242题目分析及解题思路。

“Valid Anagram”是一道很简单的题目,题目要求判断两个单词是否属于异构词。所谓“异构词”,就是组成单词的字母完全一致(包括数量),但是顺序有差别。

这道题基本思路有两种,一种是利用HashTable分别记录两个单词的字母组成,然后比较两个HashTable是否完全一致即可;另一种则是将两个单词中的字母按字母序排序,若排序后的排列一致则这两个单词互为异构词。

Given two strings s and t , write a function to determine if t is an anagram of s.

Example 1:

Input: s = "anagram", t = "nagaram"
Output: true

Example 2:

Input: s = "rat", t = "car"
Output: false

Note:

You may assume the string contains only lowercase > alphabets.

Follow up:

What if the inputs contain unicode characters? How would you adapt your solution to such case?

以下是Java的题解代码实现。

class Solution {
    public boolean isAnagram(String s, String t) {
        char[] sChars = s.toCharArray(), tChars = t.toCharArray();
        Arrays.sort(sChars);
        Arrays.sort(tChars);
        
        return String.valueOf(sChars).equals(String.valueOf(tChars));
    }
}

以下是C++的题解代码实现。

class Solution {
public:
    bool isAnagram(string s, string t) {
        sort(s.begin(), s.end());
        sort(t.begin(), t.end());
        
        return s == t;
    }
};

Search

    Table of Contents