给定字符串"aaababababab" (只有'a'或'b'允许):如何通过只使用like循环将字符串按字母顺序排序为"aaaaaaabbbbb"?
这是我目前的尝试:
word = "ababababaabab"
wordfixed = ""
i = 0
while i < len(word):
if word[i] == "a":
wordfixed += "a"
i += 1
elif word[i] == "b":
wordfixed += (word[i])
i += 1
print(wordfixed)但是它只是简单地将原始单词打印回来。如何让它打印所需的输出?
发布于 2020-10-31 16:08:53
您的代码不工作,因为您添加了您目前的字母,在结尾-因此,它将是相同的。
相反,您可以在循环一次字符串时计数'a'的数量(for循环更适合,但也可以使用)-然后打印剩余的'b'。
word = "ababababaabab"
lw = len(word)
i = 0
a_s= 0
while i < lw:
if word[i] == 'a':
print("a", end="") # dont end the line quite yet
a_s += 1
i += 1
# print b's for remaining wordlength minus printed a's
print('b' * (lw-a_s))或者更好地使用for循环:
a_s = 0
for letter in word:
if letter == "a":
a_s +=1
print(letter, end="")
print('b' * (lw-a_s))https://stackoverflow.com/questions/64623704
复制相似问题