华为od统一考试B卷【密钥格式化】Java 实现

题目

给定一个非空字符串S,其被N个-分隔成N+1的子串,给定正整数K,要求除第一个子串外,其余的串每K个用-分隔,并将小 写字母转换为大写
输入描述 正整数K和-分割的字符串,如: 2 25G3C-abc-d 输出描述 转换后的字符串
示例1输入输出示例仅供调试,后台判题数据一般不包含示例 输入 s-”5F3Z-2e-9–” 蓝-4 输出 “5F3Z-2E9W”
解释 字符串S被分成了两个部分,每部分4个字符; 注意,两个额外的破折号需要删掉。
示例2输入输出示例仅供调试,后台判题数据一般不包含示例 输入 s-“2-5g-3-J” 直-2 输出 “2-50-3J” 解释
字符串S被分成了3个部分,按照前面的规则描述,第一部分的字符可以少于给定的数量,其余部分皆为2个字符。

思路

1:题目理解了之后,做起来还是比较简单的,第一步找到第一个-符号,找出第一个子串,然后将剩下的子串再分隔井转成大写即 可。

code

import java.util.Scanner;
import java.util.*;
import java.util.stream.Stream;
import java.util.HashMap;
public class Main {
	public static void main(String[] args) {
        // 处理输入
        Scanner in = new Scanner(System.in);
        int k = in.nextInt();
        String input_str = in.next();
        String[] strs = input_str.split("-");
        String first = strs[0];
        String temp = "";
        for (int i = 1; i < strs.length; i++) {
            temp += strs[i];
        }
        String[] chars = temp.split("");
        String result = "";
        result += first;
        for (int i = 0; i < chars.length; i++) {
            String v = chars[i].toUpperCase();
            if (i % k == 0) {
                v = "-" + v;
            }
             result+=v;
        }
        System.out.println(result);
        return;
    }
}
 
// 并查集模板
class UF {
  int[] item;
  int result;
  public UF(int n) {
    item = new int[n + 1];
    result = n;
    for (int i = 0; i < n; i++) item[i] = i;
  }
  public int find(int x) {
    if (x != item[x]) {
      return (item[x] = find(item[x]));
    }
    return x;
  }
  public void union_connect(int x, int y) {
    int x_item = find(x);
    int y_item = find(y);
    if (x_item != y_item) {
      item[y_item] = x_item;
      result--;
    }
  }
}

要求

时间限制:CC++1秒,其他语言2秒
空间限制:CIC++262144K,其他语言524288K
64bit IO Fomat:%lld
语言限定:
C(dlang11),C++(dang++11),Pascal(fpc 3.0.2),Java (avac 1.8),Python2 (2.7.3),
PHP(7.4.7),C#(mcs5.4),ObjC(gcc 5.4),Pythen3(3.9),JavaScript Node(12.18.2),JavaScript V8(6.0.0),
Sqlite(3.7.9),R(4.0.3),Go(1.14.4),Ruby(2.7.1),Swift(5.3),matlab(Octave 5.2),Pypy2(pypy2.7.13), Pypy3(pypy3.6.1),Rust(1.44),Scala(2.11.12),Kotin(1.4.10),Groovy(3.0.6),TypeScnipt(4.12),Mysql(8.0)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
实现华为od统一考试b中关于打开多少监视器的要求,可以使用Java编程语言实现。 首先,我们需要定义一个方法来计算需要打开的监视器的数量。这个方法可以接受两个参数,分别是学生的数量和监视器的最大容量。 然后,我们可以使用以下逻辑来实现计算的过程: 1. 首先判断学生数量是否大于监视器的最大容量,如果是,则直接返回需要打开的监视器数量为学生数量除以监视器的最大容量向上取整。 2. 如果学生数量小于或等于监视器的最大容量,那么只需要打开一个监视器即可。 以下是基于上述逻辑的Java代码示例: ```java public class Main { public static void main(String[] args) { int studentCount = 100; // 学生数量 int monitorCapacity = 30; // 监视器的最大容量 int monitorCount = calculateMonitorCount(studentCount, monitorCapacity); System.out.println("需要打开的监视器数量为:" + monitorCount); } public static int calculateMonitorCount(int studentCount, int monitorCapacity) { if (studentCount > monitorCapacity) { return (int) Math.ceil((double) studentCount / monitorCapacity); } else { return 1; } } } ``` 以上代码中,我们假设学生数量为100,监视器的最大容量为30。根据计算逻辑,得出需要打开的监视器数量为4。 这样,我们就通过使用Java编程语言实现华为od统一考试b中关于打开多少监视器的要求。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

weixin_51297617

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值