LintCode : 两个字符串是变位词
题目概述
写出一个函数anagram(s, t)判断两个字符串是否可以通过改变字母串的顺序变成一样的字符串。
样例
给出s = “abcd”,t = “dcab”,返回true。
给出s = “ab”,t = “ab”,返回true。
给出s = “ab”,t = “ac”,返回false。
思路
将s,t排序之后扫描数组。扫描结果相同则为相同字符串,扫描发现有不同的字符,则两字符串不相同。
代码
bool anagram(string s, string t) {
if(s.size() != t.size())
return false;
quicksort(s, 0, s.size() - 1);
quicksort(t, 0, s.size() - 1);
for(int i = 0; i < s.size(); i++) {
if(s[i] != t[i])
return false;
}
return true;
}
(省略了排序代码)