经典指数          
原因
3027
浏览数
0
收藏数
 

给定两个字符串,请编写程序,确定其中一个字符串的字符重新排列后,能否变成另一个字符串。这里规定大小写为不同字符,且考虑字符串重点空格。 给定一个string stringA和一个string stringB,请返回一个bool,代表两串是否重新排列后可相同。保证两串的长度都小于等于5000。 测试样例: "This is nowcoder","is This nowcoder" 返回:true "Here you are","Are you here" 返回:false

     举报   纠错  
 
切换
1 个答案

//有点无耻额,直接用的sort函数,虽然简洁,复杂度却是O(nlogn);

//正规的做法,应该是hash,用256的元素记录每个字符出现的次数

//再进行比较,扫描一遍,比较一遍,复杂度只要O(n).

class Same {

public:

bool checkSam(string stringA, string stringB) {

sort(stringA.begin(),stringA.end());

sort(stringB.begin(),stringB.end());

return stringA.compare(stringB)==0;

}

};

 
切换
撰写答案