字符串置换
题目
给定两个字符串,请设计一个方法来判定其中一个字符串是否为另一个字符串的置换。置换的意思是,通过改变顺序可以使得两个字符串相等。
样例
“abc” 为 “cba” 的置换。
“aabc” 不是 “abcc” 的置换。
算法分析
这道题,无非就是比较一下 A 和 B 两个字符串里的字符是否一样?一样的话,就证明可以置换,并且返回 true ,否则返回 false。
我的解法
思路
我的想法就是通过对两个字符串进行排序,然后在比较它俩是否相等,时间复杂度最快为 nlogn。
代码
class Solution {
public:
/*
* @param A: a string
* @param B: a string
* @return: a boolean
*/
bool Permutation(string A, string B) {
if (A.length() != B.length()) {
return false;
} else {
if (stringCompare(A, B)) {
return true;
} else {
return false;
}
}
}
bool stringCompare(string A, string B) {
sort(A.begin(), A.end());
sort(B.begin(), B.end());
int result = A.compare(B);
if (result ==