题目链接:力扣原题
/*************************************************************************
> File Name: 有效的字母异位词.cpp
> Author:
> Mail:
> Created Time: Sat 09 Apr 2022 03:00:34 PM CST
题目:https://leetcode-cn.com/problems/valid-anagram/
给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词。
示例 1:
输入: s = "anagram", t = "nagaram"
输出: true
示例 2:
输入: s = "rat", t = "car"
输出: false
说明:
你可以假设字符串只包含小写字母。
什么是异位词:字符串长度相同,字母相同
有了这个概念之后我们就可以:
记录字符串s里字母出现的次数记录在相应数组里面,再去遍历字符串t里面的字符出现的次数,两者相减等于0说明两字符串出现的字符长度相同,
************************************************************************/
#include<iostream>
using namespace std;
class Solution
{
public:
bool isAnagram(string s, string t)
{
int record[26]={0};//用来在相应下标下记录字符串中每个字符出现的次数
//1.遍历字符串s,在相应下标下记录字符串中每个字符出现的次数
for(int i=0;i<s.size();i++)
{
record[s[i]-'a']++;
}
//2.遍历字符串t,在相应下标下记录字符串中每个字符出现的次数
for(int i=0;i<t.size();i++)
{
record[t[i]-'a']--;
}
//判断record的每个位置是否0
for(int i=0;i<sizeof(record)/sizeof(int);i++)
{
if(record[i]!=0)
return false;
}
return true;
}
};
int main()
{
Solution s;
cout <<s.isAnagram("abcd","acd")<<endl;;
return 0;
}