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.
题目的意思是判断t是否是s的相同字母异序词。
方法1:排序判断
class Solution {
public:
bool isAnagram(string s, string t) {
sort(s.begin(),s.end());
sort(t.begin(),t.end());
return (s==t);
}
};
方法2:字符个数比较的方法来判断,因为只有26个字母,所以建一个长度为26的vector来存个数就行了。
class Solution {
public:
bool isAnagram(string s, string t) {
vector<int>count(26,0);
if(s.size()!=t.size())
return false;
for(int i=0; i<s.size(); i++)
{
count[s[i]-'a']++;
count[t[i]-'a']--;
}
for(int i:count)
{
if(i!=0)
return false;
}
return true;
}
};
人生易老,唯有陪伴最长情,加油!
以上就是关关关于这道题的总结经验,希望大家能够理解,有什么问题可以在我们的专知公众号平台上交流或者加我们的QQ专知-人工智能交流群 426491390,也可以加入专知——Leetcode刷题交流群(请先加微信小助手weixinhao: Rancho_Fang)。 同时请,关注我们的公众号,获取最新关于专知以及人工智能的资讯、技术、算法等内容。扫一扫下方关注我们的微信公众号。