Python回文错误
Python Palindrome error
这是我对问题的解决方案:给定的字符串是否可以置换形成回文。我对很少的文本案例是正确的。对于给定的情况,它打印 YES,即使它应该打印 NO
string = "cdefghmnopqrstuvw"
found = False
count = 0
for i in string:
if string.count('i') % 2 == 0:
found = True
else:
count += 1
if count > 1:
found = False
if not found:
print("NO")
else:
print("YES")
一个字符串可以置换为回文,如果当它的长度为偶数时,它的字母只有偶数次出现,或者如果当它的长度为奇数时,除了一个字母之外的所有字母都出现偶数次。所以以下将起作用:
from collections import Counter
def can_be_palindrome(s):
return sum(v % 2 for v in Counter(s).values()) == len(s) % 2
使用 sum
我们计算出现奇数的字母数。如果 s
的长度为偶数,len(s) % 2
的值为 0
,如果长度为奇数,则为 1
。
示例:
>>> can_be_palindrome("aab")
True
>>> can_be_palindrome("abbb")
False
>>> can_be_palindrome("abcabc")
True
这是我对问题的解决方案:给定的字符串是否可以置换形成回文。我对很少的文本案例是正确的。对于给定的情况,它打印 YES,即使它应该打印 NO
string = "cdefghmnopqrstuvw"
found = False
count = 0
for i in string:
if string.count('i') % 2 == 0:
found = True
else:
count += 1
if count > 1:
found = False
if not found:
print("NO")
else:
print("YES")
一个字符串可以置换为回文,如果当它的长度为偶数时,它的字母只有偶数次出现,或者如果当它的长度为奇数时,除了一个字母之外的所有字母都出现偶数次。所以以下将起作用:
from collections import Counter
def can_be_palindrome(s):
return sum(v % 2 for v in Counter(s).values()) == len(s) % 2
使用 sum
我们计算出现奇数的字母数。如果 s
的长度为偶数,len(s) % 2
的值为 0
,如果长度为奇数,则为 1
。
示例:
>>> can_be_palindrome("aab")
True
>>> can_be_palindrome("abbb")
False
>>> can_be_palindrome("abcabc")
True