检查两个字符串是否是彼此的排列

新手上路,请多包涵

如何判断两个字符串是否互为排列

原文由 Supratim 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 284
1 个回答
  • 对两个字符串的字符进行排序。
  • 比较结果以查看它们是否相同。

编辑:

上述方法相当高效 - O(n*log(n)) 并且正如其他人所展示的那样,使用标准 Java API 非常容易实现。更高效(但也需要更多工作)的方法是计算和比较每个字符的出现次数,使用 char 值作为计数数组的索引。

我不认为有一种有效的递归方法。一种低效的方式(O(n^2),如果直接实施则更糟)是这样的:

  • 如果两个字符串都包含一个相同的字符,则返回 true
  • 否则:
    • 从第一个字符串中删除一个字符
    • 查看第二个字符串是否出现此字符
    • 如果不存在,则返回 false
    • 否则,删除所述字符并递归地将算法应用于两个字符串的其余部分。

原文由 Michael Borgwardt 发布,翻译遵循 CC BY-SA 2.5 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题