分配是编写一个程序,接受来自用户的两组单词,然后如果两个是字谜(或者至少如果一个字母中的所有字母都出现在另一个中)则打印"真"语句,并且"假"声明,如果没有.
作为一个整体编程的新手,我不知道如何超越仅仅索引一个字符串并比较一个字符串的所有部分.我强调我是初学者; 我已经阅读了许多其他标有Python和Anagram的帖子,它们总是在我的脑海中并且参考我没有被教过的东西.所以越简单越好.到目前为止,这是我的非工作代码:
s1 = input("Please enter a word:")
s2 = input("Please enter another word:")
for i in range(0, len(s1), 1):
if i in range (0, len(s2), 1):
print("The letters in your first word are present in your second word.")
Run Code Online (Sandbox Code Playgroud) 有一个问题是试图看两个独特的字符串是否是彼此的字谜.我考虑过的第一个解决方案是对两个字符串进行排序,看看它们是否相等.
我一直在考虑另一个解决方案,我想讨论是否可行.
我们的想法是为每个角色分配一个数值并对其求和,这样一组唯一的字符就会产生一个唯一的值.当我们测试字谜时,我们不介意"asdf"和"adsf"的校验和是否相同 - 实际上,我们要求它是这样的.但是字符串"aa"和"b"的校验和不应该相等.
我正在考虑将前52个素数分配给字母"a"到"z",然后"A"到"Z"(假设我们只有字母).
如果52个素数集合中任何两个或更多个素数的总和可能导致该集合中存在另一个素数,则上述方案将会中断.
我的疑虑是: -
谢谢.
我想从单词列表中找到字谜的创建列表.我应该在我的代码或递归中使用另一个循环吗?
some_list = ['bad', 'app', 'sad', 'mad', 'dab','pge', 'bda', 'ppa', 'das', 'dba']
new_list = [some_list[0]]
i = 0
while i+1 < len(some_list):
if (''.join(sorted(some_list[0]))) == (''.join(sorted(some_list[i+1]))):
new_list.append(some_list[i+1])
i = i+1
else:
i = i+1
print(new_list)
Run Code Online (Sandbox Code Playgroud)
['bad', 'dab', 'bda', 'dba']
.但我还想要更多其他字谜的列表some_list
.我希望输出为: - ['app', 'ppa']
- ['bad', 'dab', 'bda', 'dba']
-['sad', 'das']