如何在python中优化for循环?

2024-06-14 18:03:53 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图在python中滚动字符串 例子: s='abz' 滚动=[3,2,1]

  1. 滚动[0]=abz变为bca
  2. 滚动[1]=bca变为cda
  3. 滚动[2]=cda变为dda 我想退回dda
for i in roll:           
     s = ''.join([letters[(letters.index(c)+1)%len(letters)] for c in s[:i]]) + s[i:]
    
 return s

由于时间限制,很少有测试用例在hackerrank上失败,请有人帮助我优化这段代码


Tags: 字符串inforindexlenreturn时间例子
1条回答
网友
1楼 · 发布于 2024-06-14 18:03:53

我想你想要ord(),这是chr()的倒数;一旦你的字符是一个数字,就更容易+1(别忘了包装)

然后使用方法处理每个字符串(在循环中调用此fn-每个单词一次):

def increment(in_str):
  # loop over each letter
  for idx in range(0,len(in_str)):
    # convert to a number
    char_val = ord(in_str[idx])
    if char_val == ord("z"):
      # if 'z' - replace with 'a'
      in_str[idx] = chr("a")
    else:
      # otherwise +1 and convert back to char
      in_str[idx] = chr(char_val + 1)

相关问题 更多 >