快速判断两个字符串是不是兄弟串(两个字符串中的字符相同)

 

 快速判断两个字符串是不是兄弟串(两个字符串中的字符相同)

 

题目:如果两个字符串中的所有的字符及字符的个数都相同,则称这两个字符串为兄弟串。

要求:给出一种算法判定两个字符串是不是兄弟串。

 

思路一: 对两个字符串中的字符按字典序排序,然后比较这两个字符串是否相同。时间复杂度O(nlog(n) ).

 

思路二:用一个各个字符的哈希表,统计各个字符出现的次数,然后对每个字符的统计频率进行比较。时间复杂度:O(n)。

 

思路三:能够快速判断两字符串不是兄弟串:

           1. 两个字符串的长度不等, strlen().

           2. 若长度相等,对每个字符串的字符分别逐个异或(xor),分别生成连个特征数,两个特征数若不等,则两个字符串不是兄弟串。

 

思路四: 将思路二、三结合。

阅读更多
文章标签: 算法
个人分类: C/C++
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭
关闭