读书人

求算法:比较两个字符串如果有雷同字

发布时间: 2012-08-17 02:08:34 作者: rapoo

求算法:比较两个字符串,如果有相同字符且个数相同,为相等
如果两个字符串中有相同的字符,且个数相同,两字符串相等;否则不等

[解决办法]
比较通用的是排序后比较
如果长度不是很长,可以用两个的int[26]数组计数每个字母出现的次数(假定不区分大小写,区分为52),然后对比两个数组是否完全相同
[解决办法]
排序后算hash值,对UNICODE也适用.
[解决办法]
楼主应该是想用不排序高效的算法。
如果是java 可用HashSet现成的,拆分字符串后把第一个数组放进一个Set,在把第二个放进Set,如果最后size没有发生变化就可以认为是相同的2个字符串,反之不同。
同样如果是其他语言,你就要单独自己实现类似HashSet的一个容器,这样的好处,就是不需要排序,不需要一一比较。对巨型字符串的比较好处不言而喻。
[解决办法]
先hash,如果hash值相同,再进行比较,如果相同则相同
如果hash值都不相同,那么肯定不相同
[解决办法]
3楼的挺好
[解决办法]
比较相同的字符串,字符一样。

读书人网 >软件架构设计

热点推荐