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

(100分)- 密钥格式化(Java JS Python)

(100分)- 密钥格式化(Java & JS & Python)

题目描述

给定一个非空字符串 S,其被 N 个’-‘分隔成 N+1 的子串,给定正整数 K,要求除第一个子串外,其余的串每 K 个用’-‘分隔,并将小写字母转换为大写。

输入描述

正整数 K 和‘-’分割的字符串,如:

2
25G3C-abc-d

输出描述

转换后的字符串

用例
输入

4
5F3Z-2e-9-w

输出5F3Z-2E9W
说明

字符串 S 被分成了两个部分,每部分 4 个字符;

注意,两个额外的破折号需要删掉。

输入

2
2-5g-3-J

输出2-5G-3J
说明字符串 S 被分成了 3 个部分,按照前面的规则描述,第一部分的字符可以少于给定的数量,其余部分皆为 2 个字符。
题目解析

简单的字符串操作

JavaScript算法源码
/* JavaScript Node ACM模式 控制台输入获取 */ const readline = require("readline"); const rl = readline.createInterface({ input: process.stdin, output: process.stdout, }); const lines = []; rl.on("line", (line) => { lines.push(line); if (lines.length === 2) { const k = parseInt(lines[0]); const s = lines[1]; console.log(getResult(s, k)); lines.length = 0; } }); function getResult(s, k) { const sArr = s.split("-"); const first = sArr[0]; if (sArr.length == 1) return first; const tmp = sArr.slice(1).join("").toUpperCase().split(""); for (let i = 0; i < tmp.length; i++) { if (i % k == 0) tmp[i] = "-" + tmp[i]; } return first + tmp.join(""); }
Java算法源码
import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int k = sc.nextInt(); String str = sc.next(); System.out.println(getResult(k, str)); } public static String getResult(int k, String str) { String[] sArr = str.split("-"); String first = sArr[0]; if (sArr.length == 1) return first; StringBuilder sb = new StringBuilder(); for (int i = 1; i < sArr.length; i++) { sb.append(sArr[i]); } String[] tmp = sb.toString().toUpperCase().split(""); for (int i = 0; i < tmp.length; i++) { if (i % k == 0) tmp[i] = "-" + tmp[i]; } return first + String.join("", tmp); } }
Python算法源码
# 输入获取 k = int(input()) s = input() # 算法入口 def getResult(): sArr = s.split("-") first = sArr[0] if len(sArr) == 1: return first tmp = list("".join(sArr[1:]).upper()) for i in range(len(tmp)): if i % k == 0: tmp[i] = "-" + tmp[i] return first + "".join(tmp) # 算法调用 print(getResult())
http://www.jsqmd.com/news/433946/

相关文章:

  • 电动夹爪哪家更靠谱?自动化产线专用夹爪品牌实测对比推荐 - 品牌2026
  • 2026年知名的推拉棚销售厂家哪家好 - 品牌宣传支持者
  • 2026年电磁夹爪供应商怎么挑?可靠供应商厂家名单与选型要点 - 品牌2026
  • 【小沐学AI】解锁Claude Code,小白也能玩转AI编程
  • 2026年知名的灯带批发/灯带定制值得信赖的生产厂家 - 品牌宣传支持者
  • 基于Java+SSM+Flask智能训练管理平台(源码+LW+调试文档+讲解等)/智能训练/管理平台/训练软件/训练系统/智能化训练/训练计划/训练效果评估/训练数据分析/训练管理解决方案
  • 基于Java+SSM+Flask儿童教育网站(源码+LW+调试文档+讲解等)/儿童教育/教育网站/儿童学习/网上教育/孩子教育/学习资源/儿童成长/教育资源/儿童乐园/在线课程
  • 小白刷力扣100(3)-最长连续序列
  • 企业级健身俱乐部网站管理系统源码|SpringBoot+Vue+MyBatis架构+MySQL数据库【完整版】
  • Java Web 考研互助交流平台系统源码-SpringBoot2+Vue3+MyBatis-Plus+MySQL8.0【含文档】
  • SpringBoot+Vue 疫情防控管理系统管理平台源码【适合毕设/课设/学习】Java+MySQL
  • 电动自行车违法智能识别
  • 智能安防中的行人识别技术
  • 2026年热门的智能家具用电线材实力工厂怎么选 - 品牌宣传支持者
  • 【2025最新】基于SpringBoot+Vue的科研管理系统管理系统源码+MyBatis+MySQL
  • Linux系统常用命令(其三)进程与系统监控、文件权限
  • 双臂协作机器人 LZDR750-5NLF 介绍
  • 跨国企业在中国月报 | 雀巢、资生堂、迪士尼、迪卡侬、蔡司、立邦、DHL等公司动态
  • Rust 语言开发的 Linux 桌面来了
  • Linux救援模式是什么,如何使用
  • Linux 程序地址空间深度解析:虚拟地址背后的真相
  • 【实战复盘】TryBanana2:基于 Nano Banana 2 的 4K AI 图像生成与编辑工作流
  • 2026年口碑好的手刹冲压件值得信赖的生产厂家 - 品牌宣传支持者
  • 2026年靠谱的油烟净化风机实力厂家如何选 - 品牌宣传支持者
  • 中国电缆一线品牌推荐:2026年3月中国电缆标杆品牌推荐 - 品牌2026
  • 中国电缆一线品牌推荐:石油石化、矿山煤矿、变频、光伏电缆等品牌推荐 - 品牌2026
  • 电缆生产厂家推荐名单:2026年3月电缆生产厂家推荐及相关厂家汇总 - 品牌2026
  • 2026年靠谱的风机/工业风机销售厂家哪家好 - 品牌宣传支持者
  • 铁路地铁电力电缆生产厂家推荐:含中低压、低压、中压、变频电缆等厂家 - 品牌2026
  • 2026年蚌埠淮上区全包装修公司实力盘点与精选推荐 - 2026年企业推荐榜