Given two strings, write a method to decide if one is a perutation of the other.
思路1:排序,在比较
思路2:哈希表记录
#include<iostream>
#include<string>
#include <algorithm>
using namespace std;
bool permutation1(string s, string t) {
sort(s.begin(), s.end());
sort(t.begin(), t.end());
return s==t;
}
bool permutation2(string s, string t) {
int letter[256];
fill_n(&letter[0], 256, 0);
if (s.size() != t.size()) {
return false;
}
for (int i = 0; i < s.size(); i++) {
letter[(int)s[i]]++;
}
for (int i = 0; i < t.size(); i++) {
if (letter[(int)s[i]] == 0) {
return false;
}
letter[(int)s[i]]--;
}
return true;
}
int main() {
string s = "ispermutation";
string t = "permutationis";
cout<<permutation1(s, t)<<endl;
cout<<permutation2(s, t)<<endl;
return 0;
}