来源:http://www.nowcoder.com/questionTerminal/164929d4acd04de5b0ee2d93047b3b20
题目描述
给定两个字符串,请编写程序,确定其中一个字符串的字符重新排列后,
能否变成另一个字符串。这里规定大小写为不同字符,且考虑字符串重点空格。
给定一个string stringA和一个string stringB,请返回一个bool,代表两串是
否重新排列后可相同。保证两串的长度都小于等于5000。
测试样例:
"This is nowcoder","is This nowcoder"
返回:true
"Here you are","Are you here"
返回:false
思路说明:
这个题目描述里面“且考虑字符串重点空格”的意义描述不是很明确。
根据牛客网网友讨论和实际提交代码检测结果,感觉不像是要比较单词,而是直接比较字符。
毕竟是要把一个字符串strA调整字符顺序使得该字符串变得与字符串strB相等,所以关键不在于字符的顺序,而是字符出现的次数。
也就是说:假如strA与strB里面各个字符出现的次数对应相等,那么一定可以将strA变为strB。
所以统计strA中各个字符出现的次数并记录在countA[256]中,
然后统计strB各字符出现次数并记录在countB[256]中,
接着扫描countA[]和countB[],若是countA[i]==countB[i],i∈[0,255],则返回true,否则返回false。