【Leetcode】848. Shifting Letters

news/2024/7/7 1:29:01

题目地址:

https://leetcode.com/problems/shifting-letters/

给定一个小写英文字母的长 n n n字符串 s s s,和一个等长的非负整数数组 A A A,要求先将 s [ 0 ] s[0] s[0]字符增加 A [ 0 ] A[0] A[0]这么多数,然后将 s [ 0 : 1 ] s[0:1] s[0:1]增加 A [ 1 ] A[1] A[1]这么多数,以此类推,如果出了'z',则继续从'a'开始数起。

先求 A A A的后缀和,这样就求出了 s [ i ] s[i] s[i]要增加多少,接着做变换即可。这里需要注意一些边界条件,防止出界,要多次模 26 26 26。代码如下:

public class Solution {
    public String shiftingLetters(String s, int[] shifts) {
        shifts[shifts.length - 1] %= 26;
        for (int i = shifts.length - 2; i >= 0; i--) {
            shifts[i] += shifts[i + 1] % 26;
            shifts[i] %= 26;
        }
    
        char[] chs = s.toCharArray();
        for (int i = 0; i < chs.length; i++) {
            chs[i] += shifts[i];
            while (chs[i] > 'z') {
                chs[i] -= 26;
            }
        }
        
        return new String(chs);
    }
}

时空复杂度 O ( n ) O(n) O(n)


http://www.niftyadmin.cn/n/3641952.html

相关文章

实现主成分分析与白化

在这一节里&#xff0c;我们将总结PCA,ZCA白化算法&#xff0c;并描述如何使用高效的线性代数库来实现它们。 首先&#xff0c;我们需要确保数据的均值&#xff08;近似&#xff09;为零。对于自然图像&#xff0c;我们通过减去每个图像块(patch)的均值&#xff08;近似地&…

实战 Groovy: Groovy:Java 程序员的 DSL

实战 Groovy: Groovy&#xff1a;Java 程序员的 DSL 用 Groovy 编写更少的代码&#xff0c;完成更多的工作Scott Davis, 创始人, ThirstyHead.comScott Davis 是国际知名作家、演讲家、软件开发人员。他是 ThirstyHead.com 的创始人&#xff0c;这是一家 Groovy 和 Grails 培训…

【Leetcode】1106. Parsing A Boolean Expression

题目地址&#xff1a; https://leetcode.com/problems/parsing-a-boolean-expression/ 给定一个表达式&#xff0c;该表达式是个类似于前缀表达式的布尔表达式&#xff0c;其中t代表true&#xff0c;f代表false&#xff0c;其定义是递归的&#xff1a; 1、单个t或者f是个表达…

通过与Java的比较,迅速掌握Groovy

Groovy轻松入门——通过与Java的比较&#xff0c;迅速掌握Groovy &#xff08;更新于2008.10.18&#xff09; 在前几篇文章中&#xff0c;我已经向大家介绍了Groovy是什么&#xff0c;学习Groovy的重要性等内容&#xff0c;还不了解Groovy的朋友不妨去看看我Blog中的 Groovy分类…

Test Manager之添加需求类型工作项

Test Manager 在创建套件的时候&#xff0c;会添加要求&#xff0c;这个地方只能添加需求。有时我们的工作项可能不叫需求&#xff0c;那么此时直接添加是无法添加的。我们可以通过配置进行实现。 1、进入服务器 2、允许输入cmd 3、 64位进入&#xff0c;cd C:\Program Files (…

【Leetcode】1323. Maximum 69 Number

题目地址&#xff1a; https://leetcode.com/problems/maximum-69-number/ 给定一个只含666和999的十进制数nnn&#xff0c;最多允许将其中一个666改为999&#xff08;允许不改&#xff09;&#xff0c;问能得到的最大数是几。 显然要改最高的666&#xff0c;如果全是999则不…

基于金山快盘的Git服务器、快盘+ Git GUI 实现代码版本管理

Git&#xff0c;这货堪称神器&#xff0c;用了它就再也不想用其他VCS了&#xff0c;就像上了高速就不想再走国道一样。 Git的强大之处在于&#xff0c;你可以在局域网内的任何一个共享路径下创建仓库&#xff0c;而不需要运行任何服务。所有的操作都是基于本地的。这也不难理解…

【Leetcode】1309. Decrypt String from Alphabet to Integer Mapping

题目地址&#xff1a; https://leetcode.com/problems/decrypt-string-from-alphabet-to-integer-mapping/ 给定一个长nnn的加密过的字符串&#xff0c;其原文是个只含小写英文字母的串&#xff0c;加密方式是&#xff0c;将a变为1&#xff0c;b变为2&#xff0c;等等&#x…