【发布时间】:2021-01-01 12:41:22
【问题描述】:
给你一个字符串。你的任务是确定是否有 字符串中某个字符的出现次数等于 字符串中其他字符的出现次数。
输入
输入的第一行包含一个整数 T 表示数字 的测试用例。接下来的 T 行中的每一行都包含一个字符串 S 由小写拉丁字母组成。
输出
对于每个测试用例,如果 字符串满足上面给出的条件,否则为“NO”。
例子
输入:
4 acab zzqzqq abc kklkwwww输出:
YES YES NO YES
我的代码:
testcases = int(input())
for i in range(testcases):
string = list(input())
x = len(string)
y = max(string,key=string.count)
z = string.count(y)
if z==1:
print('NO')
elif x/z==2:
print('YES')
else:
print('NO')
在我提交此代码后,Codechef 给了我错误的答案。谁能告诉我为什么?
【问题讨论】:
-
给定示例输入时,您的代码输出什么?
-
这个问题对我来说似乎措辞模棱两可,因为其他字符的出现次数可能意味着所有其他字符或某些字符。在后一种情况下,“zzqzqqfsf”也应该返回“YES”(忽略“f”和“s”)。
-
我的代码适用于所有示例测试用例。并且字符串 zzqzqqfsf 应该根据给定的问题约束返回 NO。由于字符串 abc 也将结果作为 NO。
-
我相信您只需要检查 x == 2*z 或 x//z == 2 而不是 x/z "/" 给出浮点数。
-
"ab" 将给出结果“NO”,因为您检查了“z == 1”,但如果“其他字符”被允许为单个字符,则应该是“YES”。跨度>
标签: python algorithm data-structures