Python:每日一题 342
本帖最后由 zltzlt 于 2020-3-3 20:21 编辑今天的题目:
给定一个字符串,编写一个函数判定其是否为某个回文串的排列之一。
说明:字符串不仅只包含小写字母。
示例 1:
输入:"tactcoa"
输出:True
解释:排列有 "tacocat"、"atcocta",等等
示例 2:
输入:"abcda"
输出:False
{:10_298:}欢迎大家一起答题!{:10_298:} {:5_94:} wuqramy 发表于 2020-3-3 19:43
不明白? zltzlt 发表于 2020-3-3 19:44
不明白?
是的 zltzlt 发表于 2020-3-3 19:44
不明白?
我也有点不明白。。。
蒋博文 发表于 2020-3-3 19:45
我也有点不明白。。。
@wuqramy 意思是利用字符串中的所有字符能不能组成一个回文的字符串 zltzlt 发表于 2020-3-3 19:46
@wuqramy 意思是利用字符串中的所有字符能不能组成一个回文的字符串
哦,明白了 if(s = s[::-1]):
return True 第一个怎么就是True了
fwxxx 发表于 2020-3-3 19:51
第一个怎么就是True了
你没理解到题目,题目意思是利用字符串中的所有字符能不能组成一个回文的字符串 fwxxx 发表于 2020-3-3 19:51
第一个怎么就是True了
没有那么简单
是第一个字符串所有的字符能不能组成一个回文联 zltzlt 发表于 2020-3-3 19:46
@wuqramy 意思是利用字符串中的所有字符能不能组成一个回文的字符串
{:10_323:} 暂时只想到了这种笨方法,传入大数据可能会超时{:10_250:}
from itertools import permutations
def func342(s):
for p in permutations(s):
temp = str(''.join(str(x) for x in p))
if temp == temp[::-1]:
return True
return False
import itertools
list_all = []
list_string = []
for p in itertools.permutations("tactcoa"):
list_all.append(''.join(str(x) for x in p))
for string in list_all:
if string == string[::-1]:
list_string.append(string)
print(set(list_string)) yexing 发表于 2020-3-3 19:58
暂时只想到了这种笨方法,传入大数据可能会超时
输入 "aabbhijkkjih" 就超时 ricia 发表于 2020-3-3 19:58
不要用常规的方法 zltzlt 发表于 2020-3-3 19:59
输入 "aabbhijkkjih" 就超时
我尽力了,等待鱼油们更好的实现吧{:10_266:} 本帖最后由 fwxxx 于 2020-3-3 20:12 编辑
def fun(s):
flag = 0
l = len(s)
if(l%2==0):
for i in s:
if s.count(i) == 2:
continue
else:
return False
return True
if(l%2==1):
for i in s:
if s.count(i) == 2:
continue
elif s.count(i)==1:
flag+=1
if flag !=1:
return False
returnTrue
if __name__ == '__main__':
s = input()
if(fun(s)):
print("True")
else:
print("false")
存不存在空字符的情况,如果为空是True还是False fan1993423 发表于 2020-3-3 20:08
存不存在空字符的情况,如果为空是True还是False
不存在