当前位置: 首页 > article >正文

17164字符迁移

17164字符迁移

⭐️难度:中等
📖
在这里插入图片描述

📚


import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int n = scanner.nextInt();
        int q = scanner.nextInt();
        scanner.nextLine();  // 清除行末的换行符
        String str = scanner.nextLine();
        char[] a = str.toCharArray();

       // 将字符串转换成数字 a -> 0,b -> 1
        int[] b = new int[n];
        for (int i = 0; i < n; i++) {
            b[i] = a[i] - 'a';
        }

        // 差分数组
        int[] diff = new int[n + 1];

        // 处理每次操作
        for (int i = 0; i < q; i++) {
            int l = scanner.nextInt();
            int r = scanner.nextInt();
            int k = scanner.nextInt();

            l--;r--; // 转换成 0 基索引

            k %= 26;

            diff[l] += k;
            diff[r + 1] -= k;
        }

        // 应用差分数组
        int sum = 0; // 求前缀和
        for (int i = 0; i < n; i++) {
            sum += diff[i];
            // 计算最终的移位数,确保结果在 [0, 25] 范围内
            int sum2 = (sum + b[i]) % 26;
            // 重新转换回字符串
            b[i] = sum2;
        }

        for (int i = 0; i < n; i++) {
            System.out.print((char)(b[i] + 'a'));
        }
        
        scanner.close();
    }
}

在这里插入图片描述
⭕️

  1. k有可能很大,要对26取余。
 k %= 26;
  1. 计算最终的移位数,确保结果在 [0, 25] 范围内
 int sum2 = (sum + b[i]) % 26;

http://www.kler.cn/a/563002.html

相关文章:

  • P9231 [蓝桥杯 2023 省 A] 平方差--巧妙统计奇数的个数!
  • uniapp 小程序如何实现大模型流式交互?前端SSE技术完整实现解析
  • CF1305C Kuroni and Impossible Calculation
  • 现在集成大模型的IDE,哪种开发效率最高
  • 初识JavaFX-IDEA中创建第一个JavaFX项目
  • Project #0 - C++ Primer前置知识学习
  • ARM Coretex-M核心单片机(STM32)找到hardfault的原因,与hardfault解决方法
  • 算法题(79):两个数组的交集
  • seacmsv9注入管理员账号密码+order by+limit
  • MaxKB上架至阿里云轻量应用服务器镜像市场
  • 安科瑞为高速公路服务区充电桩建设运营提供解决方案
  • Canvas在视频应用中的技术解析
  • 国密算法Sm2工具类--golang实现版
  • SpringBoot项目连接Oracle视图报错整理
  • 上证50期权代码是什么?上证50股指期权数据从哪里可以找到?
  • 怎么获取免费的 GPU 资源完成大语言模型(LLM)实验
  • 在CentOS 7上安装RocketMQ 4.9.2
  • Vscode编辑器:解读文件结构、插件的导入导出、常用快捷键配置技巧及其常见问题的解决方案
  • 如何在Spring Boot中监控缓存的命中率?
  • 学习路之PHP --TP6异步执行功能 (无需安装任何框架)