用 Python 编写程序检查我们能否得到一对数字和任意数量的数字三元组
pythonserver side programmingprogramming更新于 2025/12/24 19:56:17
假设我们有一个数字字符串 s。我们必须检查是否存在某种排列,使得我们可以有一对相同的字符,而字符串的其余部分可以形成任意数量的相同字符的三元组。
因此,如果输入为 s = "21133123",则输出将为 True,因为有两个 2 形成 "22" 作为对,而 "111"、"333"作为两个三元组。
为了解决这个问题,我们将遵循以下步骤 −
d := 包含 s 中每个元素出现频率的列表
对于 d 中的每个 k,执行
d[k] := d[k] - 2
如果 d[i] mod 3 对于 d 中的所有 i 为 0,则
返回 True
d[k] := d[k] + 2
返回 False
示例
让我们看看下面的实现以便更好地理解
from collections import Counter
def solve(s):
d = Counter(s)
for k in d:
d[k] -= 2
if all(d[i] % 3 == 0 for i in d):
return True
d[k] += 2
return False
s = "21133123"
print(solve(s))
输入
"21133123"
输出
True
相关文章
有用资源
python 参考教程 - 该教程包含有关 python 的更多信息:https://www.cainiaomax.com/python/

