zltzlt
发表于 2020-3-3 21:34:10
kinkon 发表于 2020-3-3 21:05
感觉还是第一种方法快一点,少了个循环
解答错误
输入:"aabb"
输出:False
预期结果:True
kinkon
发表于 2020-3-3 21:40:32
zltzlt 发表于 2020-3-3 21:34
解答错误
输入:"aabb"
越来越迷糊了,现在对了吗?
whosyourdaddy
发表于 2020-3-3 21:50:53
def func342(n):
count = 0
flag = 0
list1 = list(n)
list2 = sorted(set(list1),key=list1.index)
for i in list2:
if list1.count(i) == 2:
continue
elif list1.count(i)>2:
flag = 1
break
elif list1.count(i) == 1:
count += 1
if count == 2:
break
if count == 2 or flag == 1:
return False
return True
wuqramy
发表于 2020-3-3 22:03:40
本帖最后由 wuqramy 于 2020-3-4 12:41 编辑
好像不止一个用字典的呢
def hwstr():
n = input('n = ')
count = 0
dict1 = {}
for each in n:
if each not in dict1.keys():
dict1 = 0
else:
dict1 += 1
for each in dict1.values():
if each % 2 == 0:
count += 1
if count > 1:
print('False')
else:
print('True')
hwstr()
wuqramy
发表于 2020-3-3 22:13:26
wuqramy 发表于 2020-3-3 22:03
好像不止一个用字典的呢
字典,快准狠!
@zltzlt {:10_325:}
寻风
发表于 2020-3-3 23:41:04
#<
def fun342():
str1 = input()
k=0
for i in set(str1):
k+=str1.count(i)%2
print(k>2)
#>
Lyton_
发表于 2020-3-3 23:41:27
本帖最后由 Lyton_ 于 2020-3-4 00:07 编辑
def fun342(str1):
count=0
for each in str1:
count+=str1.count(each)%2
if count>1:
print('False')
else:
print('True')
str1=input('请输入需要判断的字符串:')
fun342(str1)
寻风
发表于 2020-3-3 23:45:28
def fun342():
str1 = input()
k=0
for i in set(str1):
k+=str1.count(i)%2
print(k>2)
Python3005
发表于 2020-3-4 02:33:08
本帖最后由 Python3005 于 2020-3-4 02:34 编辑
import collections
def fun(s):
lst = collections.Counter(s).values()
lst = list(filter(lambda x : x % 2, lst))
return len(lst) < 2
NAMELESSONE
发表于 2020-3-4 08:28:54
def five(ing:str):
if len(ing)==1:
return True
ing=list(ing)
if len(ing)==2*len(set(ing)) or (len(ing)%2!=0 and len(ing)==2*int(len(set(ing)))-1):
return True
return False
iGD_Hz
发表于 2020-3-4 08:58:03
def fun_342(str1):
flag = 0
for i in str1:
if i in dict1:
dict1 += 1
else:
dict1 = 1
for i in dict1.values():
if i % 2:
flag += 1
if flag<2:
return True
else:
return False
dict1 ={}
str1 = input()
print(fun_342(str1))
一个账号
发表于 2020-3-4 12:07:24
这种算吗:
输入:"Tactcoa"
输出:True
解释:排列有 "Tacocat"、"atcocTa",等等
zltzlt
发表于 2020-3-4 12:08:39
一个账号 发表于 2020-3-4 12:07
这种算吗:
输入:"Tactcoa"
输出:True
区分大小写
一个账号
发表于 2020-3-4 12:17:23
严重超时{:10_266:}:
from itertools import permutations as p
def func(str1):
list1 = []
for letter in str1:
list1.append(letter)
for lst in p(list1):
if lst[::-1] == lst:
return True
return False
hhb1988
发表于 2020-3-4 12:18:15
def f342(strinfo):
temstr = list(strinfo)
odd_num = 0
while len(temstr)>0:
firstnum = temstr
del temstr
if firstnum in temstr:
p=temstr.index(firstnum)
del temstr
else:
odd_num +=1
if odd_num > 1:
return False
if odd_num==0:
return True
elif len(strinfo)%2 == 1:
return True
else:
return False
strinfo = list(input('请输入一个字符串:'))
iff342(strinfo):
print('是回文串。')
else:
print('不是回文串。')
单个字符也算是回文串吧
zltzlt
发表于 2020-3-4 12:18:40
一个账号 发表于 2020-3-4 12:17
严重超时:
不要使用 itertools
一个账号
发表于 2020-3-4 12:37:44
wuqramy 发表于 2020-3-3 22:13
@zltzlt
题目要求写一个函数
wuqramy
发表于 2020-3-4 12:41:33
一个账号 发表于 2020-3-4 12:37
题目要求写一个函数
已改,谢谢提醒
黎影
发表于 2020-3-4 19:25:34
str1 = input('输入:')
str2 = ''
str3 = ''
list1 = []
for a in str1:
if not(a in str2):
str2 += a
number1 = 0
for i in range(len(str2)):
if number1 >= 2:
break
else:
a = str1.count(str2)
list1.append(a)
if (a%2) != 0:
number2 = i
number1 += 1
if number1 >= 2:
print('输出:False')
else:
if (len(str1)%2) == 0:
for a in range(len(list1)):
if list1/2-1 != 0:
for b in range(list1/2-1):
str2 += str2
for c in range(len(str2),-1,-1):
str2 += str2[(c-1):c]
print('输出:True')
print('解释:排列有“%s”,等等'%str2)
else:
str3 = str2
str2 = str2[:i]+str2[(i+1):]
list1.remove(1)
for a in range(len(list1)):
if list1/2-1 != 0:
for b in range(list1/2-1):
str2 += str2
str2 += str3
for c in range(len(str2)-1,-1,-1):
str2 += str2[(c-1):c]
print('输出:True')
print('解释:排列有“%s”,等等'%str2)
Oir88888
发表于 2020-3-4 19:39:36
萌新在这里{:5_109:}