如何在字符串python中反转两个字符
我想知道如何反转字符串中的两个字符。 以下是一些例子: ‘wing’=>‘iwng’、‘inwg’、‘ingw’ “西部”=>“ewst”、“eswt”、“estw” 我打算使用给出的任何答案,并将其放入while循环中,这样我就可以在一次交换两个字符时获得字符串的所有可能组合。 前如何在字符串python中反转两个字符,python,string,loops,Python,String,Loops,我想知道如何反转字符串中的两个字符。 以下是一些例子: ‘wing’=>‘iwng’、‘inwg’、‘ingw’ “西部”=>“ewst”、“eswt”、“estw” 我打算使用给出的任何答案,并将其放入while循环中,这样我就可以在一次交换两个字符时获得字符串的所有可能组合。 前 计数器=0 while (counter <= len(str1)): if str1 == reverse(str2): return str2 elif str1 == str
计数器=0
while (counter <= len(str1)):
if str1 == reverse(str2):
return str2
elif str1 == str2
return str2
else:
str1 = *some code that would swap the the characters m and n*
str1 =
n += 1
m += 1
return False
while(计数器尝试以下操作:
s = 'wing'
s = 'west'
l = [x for x in s]
for i in xrange(len(s)-1):
l[i], l[i+1] = l[i+1], l[i]
print "".join(l)
试试这个:
s = 'wing'
s = 'west'
l = [x for x in s]
for i in xrange(len(s)-1):
l[i], l[i+1] = l[i+1], l[i]
print "".join(l)
为了产生所有可能性,我们可以使用:
s = "yourstring"
for i in range(0,len(s)-2):
if i>0: print s[:i]+s[i+1:i-1:-1]+s[i+2:]
else: print s[1]+s[0]+s[2:]
为了产生所有可能性,我们可以使用:
s = "yourstring"
for i in range(0,len(s)-2):
if i>0: print s[:i]+s[i+1:i-1:-1]+s[i+2:]
else: print s[1]+s[0]+s[2:]
由于您希望实际比较两个字符串,以查看它们是否“通过交换两个字符而相同”,因此实际上不需要生成所有可能的组合,而是可以遍历每个字符串中的每个字符,并确保其中不相等的字符不超过两个
这可以通过以下方式完成:
def twoCharactersDifferent(str1,str2):
if sorted(str1) != sorted(str2): #they must contain the same letters, exactly!
return False
numDifferent = 0
for i in range(len(str1)):
numDifferent += (str1[i] != str2[i])
if numDifferent >2:
return False
return True
print twoCharactersDifferent('wings','winxg')
由于您希望实际比较两个字符串,以查看它们是否“通过交换两个字符而相同”,因此实际上不需要生成所有可能的组合,而是可以遍历每个字符串中的每个字符,并确保其中不相等的字符不超过两个
这可以通过以下方式完成:
def twoCharactersDifferent(str1,str2):
if sorted(str1) != sorted(str2): #they must contain the same letters, exactly!
return False
numDifferent = 0
for i in range(len(str1)):
numDifferent += (str1[i] != str2[i])
if numDifferent >2:
return False
return True
print twoCharactersDifferent('wings','winxg')
通过交换两个字符,你是如何从west
到eswt
的?定义“swap”。这是家庭作业吗?你在遍历字符串时并排交换了两个字符。所以交换[0]和[1],然后交换[1][2],然后交换[2][3],等等。通过交换两个字符,你是如何从west
到eswt
的?定义“swap”。这是家庭作业吗?你在遍历字符串时并排交换两个字符。所以交换[0]和[1],然后交换[1][2],然后交换[2][3]等等。好吧,太棒了!这太棒了!我不需要打印它,我只需要每个循环迭代的结果,我只需要将“”。join(l)附加到一个本地定义的变量?它只是l=list(s)
,不需要列表理解。好吧,太棒了!这太棒了!我不需要打印它,我只需要每个循环迭代的结果,我只需要将“”join(l)附加到本地定义的变量?它只是l=list(s)
,不需要列表理解。