对两个字符串的字符进行排序。 比较结果以查看它们是否相同。 编辑: 上述方法相当高效 - O(n*log(n)) 并且正如其他人所展示的那样,使用标准 Java API 非常容易实现。更高效(但也需要更多工作)的方法是计算和比较每个字符的出现次数,使用 char 值作为计数数组的索引。 我不认为有一种有效的递归方法。一种低效的方式(O(n^2),如果直接实施则更糟)是这样的: 如果两个字符串都包含一个相同的字符,则返回 true 否则: 从第一个字符串中删除一个字符 查看第二个字符串是否出现此字符 如果不存在,则返回 false 否则,删除所述字符并递归地将算法应用于两个字符串的其余部分。 原文由 Michael Borgwardt 发布,翻译遵循 CC BY-SA 2.5 许可协议
编辑:
上述方法相当高效 - O(n*log(n)) 并且正如其他人所展示的那样,使用标准 Java API 非常容易实现。更高效(但也需要更多工作)的方法是计算和比较每个字符的出现次数,使用 char 值作为计数数组的索引。
我不认为有一种有效的递归方法。一种低效的方式(O(n^2),如果直接实施则更糟)是这样的: