我正在尝试创建一个函数,该函数将字符串作为参数,并通过与相邻字母交换字母来返回所有生成的单词的列表。
我首先获取每个字母并创建一个字符串列表,每个字符串包含一个字母。
然后我遍历新的字母列表并尝试交换它们。
然后我将字母连在一起形成一个字符串。
然后将新字符串附加到返回的列表中。
这是我的代码。请告诉我如何解决。我不希望它在列表中显示通过的单词。谢谢。
def mixedString(word):
word = word.lower()
letters = []
newArray = []
for n in word:
letter = f"{n}"
letters.append(letter)
newList = []
for i in range(len(letters)):
newWord = ""
newArray = letters[i:] + letters[:i]
newWord = "".join(newArray)
newList.append(newWord)
return newList
myWord = "Dog"
print(mixedString(myWord))
提示:只有n-1个不同的单词,其中原始单词的一个字母已被交换。要了解原因,请注意ab
仅以ba
作为结果。
如果单词的字母位于位置[[i和i + 1”,则替换[[i之前的字母不变,并且i + 1之后的字母也不变。
def swap(s, i):
return s[:i] + s[i+1] + s[i] + s[i+2:]
def neighbors(s):
return [swap(s, i) for i in range(len(s)-1)]
def swap(string, place_1, place_2):
string = list(string)
string[place_1], string[place_2] = string[place_2], string[place_1]
return ''.join(string)
a = '1234'
print(swap(a, 1, 2))
>>> 1324
我不希望它在列表中显示通过的单词。
只需跳过相关循环中的第一次迭代,例如通过替换为:
for i in range(len(letters)):
带有此:
for i in range(1, len(letters)):