zoukankan      html  css  js  c++  java
  • 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
  • 相关阅读:
    洛谷—— P3353 在你窗外闪耀的星星
    洛谷—— P1238 走迷宫
    洛谷—— P1262 间谍网络
    9.8——模拟赛
    洛谷—— P1189 SEARCH
    算法
    May 22nd 2017 Week 21st Monday
    May 21st 2017 Week 21st Sunday
    May 20th 2017 Week 20th Saturday
    May 19th 2017 Week 20th Friday
  • 原文地址:https://www.cnblogs.com/khal-Cgg/p/9982876.html
Copyright © 2011-2022 走看看