声明:原题目转载自LeetCode,解答部分为原创
Problem :
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.
思路:判断两个字符串是否可以通过颠倒而得到,可以先将两个字符串按字典序排序,然后判断字符串是否相同。
代码如下:
#include<iostream>
#include<algorithm>
using namespace std;
class Solution {
public:
bool isAnagram(string s, string t) {
sort(s.begin(), s.end());
sort(t.begin(), t.end());
// method_1
/* int point_1 = 0;
int point_2 = 0;
while(point_1 < s.size() && point_2 < t.size())
{
if(s[point_1] == t[point_2])
{
point_1 ++;
point_2 ++;
}
else
{
return false;
}
}
if(point_1 == 0 && point_2 == 0)
return true;
else if(point_1 == s.size() && point_2 == t.size())
return true;
else
return false;
*/
//method_2
if(s == t)
return true;
else
return false;
}
};