本文主要是介绍华为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)
这篇关于华为od统一考试B卷【密钥格式化】Java 实现的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!