【问题标题】:Sherlock's String夏洛克的弦
【发布时间】:2020-08-21 13:16:27
【问题描述】:

问题描述:如果字符串的所有字符出现相同的次数,Sherlock 认为该字符串是有效的。如果他可以仅删除字符串中 1 个索引处的 1 个字符,并且其余字符将出现相同的次数,这也是有效的。给定一个字符串 s,判断它是否有效。如果是,返回YES,否则返回NO。

def isValid(s):
lst = []
temp = []

for i in s:
    y = i
    lst.append(y)
st = set(lst)

for j in st:
    count = s.count(j)
    temp.append(count)


temp.sort()
print(temp)
b=temp[-1]-temp[-2]
ele = temp[0]
chk=True
for item in temp:
    if ele!=item:
        chk=False;
        break;
    if(chk==True):
        print('YES')
        break;
    elif(b==1):
        print('YES')
        break;
    else:
        print('NO')
        break;

出于某种原因,无论我的输入如何,答案似乎都是肯定的。谁能告诉我哪里出错了。

Link to the question PS - 您不需要帐户即可查看问题,只需单击屏幕上的任意位置即可。

【问题讨论】:

    标签: python python-3.x string list


    【解决方案1】:

    这是因为您为变量设置了初始值。在通过temp 进行迭代的第一步中,您会发现ele == item(因为两者都是temp[0]),然后是chk == True(因为您设置了它)。在第一步之后,它会打印 yes 并立即中断。

    【讨论】:

    • 哦,明白了,你也可以提出修改建议吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多