#刷题交流# 第21天:小D的`abc`变换问题
解题思路:
首先,定义一个函数 changeLetter,它的作用是根据给定的字符进行对应的变换。具体来说,就是通过判断传入的字符是‘a’、‘b’还是‘c’,然后分别返回对应的变换后的字符串,比如传入‘a’就返回‘bc’,传入‘b’返回‘ca’,传入‘c’返回‘ab’。
定义另一个函数 changeLetterList。它接收原始字符串 s 和操作次数 k 作为参数。在函数内部,通过一个循环来重复进行操作,循环次数就是给定的 k 值。每次循环时,会利用生成器表达式和 join 函数,将原字符串中的每个字符都经过 changeLetter 函数进行变换,然后把变换后的结果拼接起来,得到新的字符串,并且将新字符串赋值给原字符串变量,以便下一次循环继续基于新的状态进行变换。
核心代码:
def changeLetter(alpha):
if alpha == 'a':
alpha = 'bc'
elif alpha == 'b':
alpha = 'ca'
elif alpha == 'c':
alpha ='ab'
return alpha

def changeLetterList(s,k):
new_s = ''
for _ in range(k):
new_s = ''.join(changeLetter(ch) for ch in s)
s = new_s
return new_s

21天,21天,加油⛽️!!!
展开
评论