zoukankan      html  css  js  c++  java
  • 848. Shifting Letters

    package LeetCode_848
    
    /**
     * 848. Shifting Letters
     * https://leetcode.com/problems/shifting-letters/description/
     *
    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 S, x 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 <= S.length = shifts.length <= 20000
    0 <= shifts[i] <= 10 ^ 9
     * */
    class Solution {
        /*
        * Solution:SuffixSum, Time complexity:O(n), Space complexity:O(n)
        * */
        fun shiftingLetters(S: String, shifts: IntArray): String {
            //avoid calculation overflow, use Long
            val suffixSumArray = LongArray(shifts.size)
            var suffixSum = 0L
            for (i in shifts.size - 1 downTo 0) {
                suffixSum += shifts[i]
                suffixSumArray[i] = suffixSum
            }
            val sb = StringBuilder()
            for (i in suffixSumArray.indices) {
                sb.append((((S[i] - 'a' + suffixSumArray[i]) % 26) + 'a'.toInt()).toChar())
            }
            return sb.toString()
        }
    }
  • 相关阅读:
    smarty的学习
    用接口实现封装的一个mysqli工具类
    centos7/8安装java和mysql
    Mysql 8.0 忘记密码报错1045办法,skip-grant-tables不管用
    卸载vivo手机自带的应用程序
    DevOps的学习(一)
    quartzy的spring注入问题
    html加载执行的顺序
    关于时间Date转换成long类型的方法(时间戳的转换)
    系统中出现乱码
  • 原文地址:https://www.cnblogs.com/johnnyzhao/p/13472712.html
Copyright © 2011-2022 走看看