• Day2 -- Shifting Letters


    From: https://leetcode.com/

    mode: random pick

    degree: Medium

    We have a string S of lowercase letters, and an integer array shifts.

    Call the shift of a letter, the next letter in the alphabet, (wrapping around so that 'z' becomes 'a'). 

    For example, shift('a') = 'b'shift('t') = 'u', and shift('z') = 'a'.

    Now for each shifts[i] = x, we want to shift the first i+1 letters of Sx times.

    Return the final string after all such shifts to S are applied.

    Example 1:

    Input: S = "abc", shifts = [3,5,9]
    Output: "rpl"
    Explanation: 
    We start with "abc".
    After shifting the first 1 letters of S by 3, we have "dbc".
    After shifting the first 2 letters of S by 5, we have "igc".
    After shifting the first 3 letters of S by 9, we have "rpl", the answer.
    

    Note:

    1. 1 <= S.length = shifts.length <= 20000
    2. 0 <= shifts[i] <= 10 ^ 9

    My solution:

     1 #!/usr/bin/env python
     2 # -*- coding: utf-8 -*-
     3 # Time    : 2018/11/8 
     4 
     5 
     6 class Solution:
     7     def __init__(self):
     8         self.s_list = []
     9         self.result = []
    10 
    11     def shiftingLetters(self, S, shifts):
    12         """
    13         :type S: str
    14         :type shifts: List[int]
    15         :rtype: str
    16         """
    17         self.s_list = [ord(i) for i in list(S)]
    18 
    19         def temp(x):
    20             req = [self.plusIndex(i, x) for i in self.s_list]
    21             self.s_list = req
    22         map(temp, shifts)
    23         self.result = [chr(i) for i in self.s_list]
    24 
    25     def plusIndex(self, index_node, times, length=26, start_index=97, end_index=122):
    26         times_y = times % length
    27         req_index = times_y + index_node
    28         if req_index > end_index:
    29             req_index = req_index - end_index + start_index - 1
    30         return req_index
    31 
    32 
    33 if __name__ == '__main__':
    34     s = Solution()
    35     s.shiftingLetters("dfsr", [1, 3])
    36     print s.result
  • 相关阅读:
    Run command in YMAL build pipeline or Release Pipeline
    Create Pipeline for Azure Apps
    Deploy Azure App Service with VS Code
    多线程总结笔记
    @Param注解
    Mac Idea2018.1破解
    空指针异常Caused by: java.lang.NullPointerException: null
    java集合面试题
    在IntelliJ IDEA中使用git
    分支管理
  • 原文地址:https://www.cnblogs.com/khal-Cgg/p/9982876.html
Copyright © 2020-2023  润新知