华为OD机试 E卷|字符串分割转换

algorithm-geek / 2025-02-21 / 原文

华为OD机试E卷|字符串分割转换

0、关于本专栏 & 刷题交流群

本文收录于专栏【2024华为OD机试真题】,专栏共有上千道OD机试真题,包含详细解答思路、与四种代码实现(Python、Java、C++、JavaScript)。

点击文末链接加入【华为OD机试交流群】,和群友一起刷题备考。刷的越多,考试中遇到原题的概率就越大,永久、实时更新新题目。

1、题目详情

问题描述

给定一个非空字符串S, 其被N个-分隔成 N + 1 的子串, 给定正整数K, 要求除第一个子串外, 其余的子串每K个字符组成新的子串, 并用 -分隔.

对于新组成的每一个子串, 如果它含有的小写字母比大写字母多, 则将这个子串的所有大写字母转换为小写字母.

反之, 如果它含有的大写字母比小写字母多, 则将这个子串的所有小写字母转换为大写字母; 大小写字母的数量相等时, 不做转换,

输入格式

输入为两行, 第一行为参数K, 第二行为字符串S.

输出格式

输出转换后的字符串.

示例输入1

3
12abc-abCABc-4aB@

示例输出1

12abc-abc-ABC-4aB-@

说明:

  • 子串为12abc, abCABc, 4aB@, 第一个子串保留
  • 后面的子串每3个字符一组为abC, ABc, 4aB, @
  • abC中小写字母较多, 转换为abc
  • ABc中大写字母较多, 转换为ABC
  • 4aB中大小写字母都为1个, 不做转换
  • @中没有字母, 连起来即 12abc-abc-ABC-4aB-@

示例输入2

12
12abc-abCABc-4aB@

示例输出2

12abc-abCABc4aB@

详细解题思路、及代码实现可以订阅我的CSDN专栏:最最最新华为OD机试真题