当前位置: 代码迷 >> 综合 >> LeetCode:有效的字母异位词(c++)
  详细解决方案

LeetCode:有效的字母异位词(c++)

热度:61   发布时间:2024-02-26 11:06:43.0

题目内容:

给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词。

示例 1:

输入: s = "anagram", t = "nagaram"
输出: true
示例 2:

输入: s = "rat", t = "car"
输出: false
说明:
你可以假设字符串只包含小写字母。

思路一:利用字符串排序,然后判断它们是否都是一样的。

c++:

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

java:

class Solution {public boolean isAnagram(String s, String t){if(s.length()!=t.length()){return false;}char[] str1 =s.toCharArray();char[] str2 =t.toCharArray();Arrays.sort(str1);Arrays.sort(str2);return Arrays.equals(str1,str2);}
}

思路二:使用c++中的map

class Solution {
public:bool isAnagram(string s, string t){if(s.size()!=t.size())return false;unodered_map<char,int>map;for(char c:s) map[c]++;for(char c:t)if(--map[c]==-1) return false;return true;}
};