题目描述:
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.
思路:
两种方法,sort()排序一种方法;另一种计数器解决。
代码实现:
解法一:排序之后判断相等
class Solution {
public:
bool isAnagram(string s, string t) {
sort(s.begin(), s.end());
sort(t.begin(), t.end());
return s == t;
}
};
解法二:计数器判断相等。
class Solution {
public:
bool isAnagram(string s, string t) {
//sort(s.begin(),s.end());
//sort(t.begin(),t.end());
//return s==t;
vector<int> count(26,0);
for(int i=0;i<s.size();i++)
{
count[s[i]-'a']++;
}
for(int i=0;i<t.size();i++)
{
count[t[i]-'a']--;
}
for(int i=0;i<26;i++)
{
if(count[i]!=0)
return false;
}
return true;
}
};
本文介绍了一种算法,用于判断两个字符串是否为字谜(即字母相同但顺序不同)。提供了两种方法:一种是对字符串排序后进行比较,另一种是通过计数器统计每个字符出现次数来判断。
512

被折叠的 条评论
为什么被折叠?



