题目如下:

解题思路:本题首先要很快速的计算出任意一个字符shift后会变成哪个字符,其实也很简单,让shift = shift % 26,接下来再做计算。第二部是求出每个字符要shift的次数。可以得出S[0]的shift次数等于sum(shifts),S[1]的次数等于sum(shifts)-shifts[0],S[2]的次数等于sum(shifts)-shifts[0]-shifts[1]...依次类推。这个规律可以保证整个算法的复杂度是O(n)。

代码如下:

class Solution(object):
def getShift(self,c,shift):
shift = shift % 26
nextc = ord(c) + shift
if nextc > ord('z'):
nextc -= ord('z')
nextc -= 1
nextc += ord('a')
return chr(nextc) def shiftingLetters(self, S, shifts):
"""
:type S: str
:type shifts: List[int]
:rtype: str
"""
amount = 0
for i in shifts:
amount += i
res = ''
for i in xrange(len(S)):
res += self.getShift(S[i],amount)
amount -= shifts[i]
return res

最新文章

  1. [蓝牙] 2、蓝牙BLE协议及架构浅析&&基于广播超时待机说广播事件
  2. AppDelegate方法中文记录
  3. JS eval() 特殊用法
  4. 将服务器上的某些特定日志统一保存至XPS文件
  5. java 分页
  6. 自定义配置文件的使用及加载-txt
  7. 【shell脚本练习】grep sed awk
  8. 一套代码小程序&Web&Native运行的探索03——处理模板及属性
  9. Redis 缓存应用实战
  10. 利用ASK/OOK 发射模块,实现信号重放
  11. jQuery 自定义函数写法分享
  12. React 组件库框架搭建
  13. poj1179 环形+区间dp
  14. Sql Server 开窗函数Over()的使用
  15. C++ 第二课:操作符号的优先级
  16. Django部署生产环境,静态文件不能访问404,以及图片不能访问403
  17. [Android UI] Activity Maintheme (Android 解决程序启动时的黑屏问题)
  18. 解决JavaScript拖动时同时触发点击事件的BUG
  19. thinkphp5访问sql2000数据库
  20. 收集、分析线上日志数据实战——ELK

热门文章

  1. 初学单片机:Proteus介绍、Proteus与Keil联调(Windows10环境下)
  2. ES6中数组和对象的扩展运算符拷贝问题以及常用的深浅拷贝方法
  3. echars 柱状图 堆叠状态 --》二次封装
  4. /proc/cpuinfo 查看cpu信息
  5. iScroll使用参考
  6. Java数据结构之算法时间度
  7. vue点击除了某组件本身的其它地方, 隐藏该组件的方法
  8. P1219八皇后
  9. 洛谷P1823 [COI2007] Patrik 音乐会的等待(单调栈+二分查找)
  10. tensorflow学习笔记三----------基本操作