如何检查字符串是否具有相同的字符? Python

新手上路,请多包涵

我需要能够辨别任意长度的字符串是否大于 1(且仅小写)在基本字符串或模板字符串中是否具有相同的字符集。

例如,字符串“aabc”:“azbc”和“aaabc”为假,而“acba”为真。

有没有一种快速的方法可以在 python 中执行此操作,而无需跟踪第一个字符串的所有排列,然后将其与测试字符串进行比较?

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

阅读 448
2 个回答

对两个字符串进行排序,然后比较它们:

 sorted(str1) == sorted(str2)

如果字符串的长度可能不同,您可能需要先确定这一点以节省时间:

 len(str1) == len(str2) and sorted(str1) == sorted(str2)

原文由 David Robinson 发布,翻译遵循 CC BY-SA 3.0 许可协议

这是 O(n) 解决方案

from collections import Counter
Counter(str1) == Counter(str2)

但是 O(n * log n) 使用 sorted --- 的解决方案对于 n 的合理值可能更快

原文由 John La Rooy 发布,翻译遵循 CC BY-SA 3.0 许可协议

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