字符串分割

题目描述

给定一个非空字符串S,其被N个‘-’分隔成N+1的子串,给定正整数K,要求除第一个子串外,其余的子串每K个字符组成新的子串,并用‘-’分隔。
对于新组成的每一个子串,如果它含有的小写字母比大写字母多,则将这个子串的所有大写字母转换为小写字母;
反之,如果它含有的大写字母比小写字母多,则将这个子串的所有小写字母转换为大写字母;大小写字母的数量相等时,不做转换。

输入描述

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

输出描述

输出转换后的字符串

输入1 输入2 输出 说明
3 12abc-abCABc-4aB@ 12abc-abc-ABC-4aB-@
12 12abc-abCABc-4aB@ 12abc-abCABc4aB@

源码和解析
解析:

依据题意 第一个子串不做变化,可以另外保存
将第一个子串外的其他子串合并为为一个字符串,再根据长度拆分为新的子串
判断新的子串中字符的大小写情况来来做大小写变化

示例代码:

import java.util.ArrayList;
import java.util.List;public class T6 {public static void main(String[] args) {int number = 6;// 拆分数String input = "12abc-abCABc-4aB@a"; // 输入的子串String[] strArr = input.split("-");String tempStr = "";// 临时子串for (int i = 1; i < strArr.length; i++) {tempStr += strArr[i];// 产生新的子串}// 按拆分数重新分配子串List<String> strList = new ArrayList<String>();strList.add(strArr[0]);System.out.println(tempStr);if (tempStr.length() < number) {strList.add(tempStr);} else {while (tempStr.length() > 0) {if (tempStr.length() >= number) {String item = tempStr.substring(0, number);strList.add(item);tempStr = tempStr.replaceFirst(item, "");} else {if (tempStr.length() > 0) {strList.add(tempStr);tempStr = "";}}}}// 针对每个子串进行大小写判断 并产生新的子串String result = strArr[0];for (String item : strList) {if (!item.equals(strArr[0])) {// 开始判断result += "-" + trans(item);}}// System.out.println(strList);System.out.println(result);}// 字符串的变化处理static String trans(String key) {int bigNumber = 0;int littleNumber = 0;char chArr[] = key.toCharArray();for (char c : chArr) {if (c >= 'a' && c <= 'z')littleNumber++;if (c >= 'A' && c <= 'Z')bigNumber++;}if (bigNumber > littleNumber) {key = key.toUpperCase();} else if (bigNumber < littleNumber) {key = key.toLowerCase();}return key;}
}

华为OD机试之字符串分割相关推荐

  1. 华为OD机试真题大全完整目录

    华为OD机试真题大全完整目录 专栏说明如下 专栏目录 专栏说明如下 内容:华为OD机试真题大全 数量:406篇博文(2023年5月16日截止) 更新时间至:2023年5月16日(后续加上去的博文,会每 ...

  2. 【华为OD机试真题 JAVA】字符串分割(二)

    JS版:[华为OD机试真题 JS]字符串分割(二) 标题:字符串分割 | 时间限制:1秒 | 内存限制:262144K | 语言限制:不限 给定一个非空字符串S,其被N个'-'分隔成N+1的子串,给定 ...

  3. 【华为OD机试真题 JAVA】字符串分割

    JS版:[华为OD机试真题 JS]字符串分割 标题:字符串分割 | 时间限制:3秒 | 内存限制:262144K | 语言限制:不限 给定非空字符串s,将该字符串分割成一些子串,使每个子串的ASCII ...

  4. 【华为OD机试真题 Python】加扰字符串

    前言:本专栏将持续更新华为OD机试题目,并进行详细的分析与解答,包含完整的代码实现,希望可以帮助到正在努力的你.关于OD机试流程.面经.面试指导等,如有任何疑问,欢迎联系我,wechat:steven ...

  5. 【华为OD机试真题 Python】判断字符串子序列

    前言:本专栏将持续更新华为OD机试题目,并进行详细的分析与解答,包含完整的代码实现,希望可以帮助到正在努力的你.关于OD机试流程.面经.面试指导等,如有任何疑问,欢迎联系我,wechat:steven ...

  6. 【满分】【华为OD机试真题2023 JAVAJS】字符串解密

    华为OD机试真题,2023年度机试题库全覆盖,刷题指南点这里 字符串解密 知识点数组字符串排序 时间限制:1s 空间限制:256MB 限定语言:不限 题目描述: 给定两个字符串string1和stri ...

  7. 【华为OD机试 2023】 字符串解密(C++ Java JavaScript Python)

    华为od机试共有3道题,分值为100+100+200,总分为400分.时间限制为150分钟或3个小时..每道题目都需要通过测试用例来得分,全通过则为满分.华为od机试是在牛客网上进行的,采用ACM模式 ...

  8. 【华为OD机试真题】字符串解密(C++javapython)100%通过率 超详细代码注释 代码解读

    [华为OD机试真题 2022&2023]真题目录 @点这里@ [华为OD机试真题]信号发射和接收 &试读& @点这里@ [华为OD机试真题]租车骑绿道 &试读& ...

  9. 2023华为OD机试备考攻略 以及题库目录分值说明 考点说明

    刷题库,刷题库 刷题库.重要的事情说三遍!!!!!!!!!!!!!!!!!!!!!! 要刷有多种语言的实现的题库,一种语言看不懂可以换另一种语言,而且可以结合起来去重!!! 类似下面这种的题库: 华为 ...

最新文章

  1. Python - 按天算年龄
  2. SVM针对中文文本分类
  3. centos yum安装_centos7上yum安装碰到的坑
  4. mysql function_Koa2 amp; mySQL amp; PM2 搭建后端服务
  5. 光驱怎么挂载第二个光驱_重装系统下侦测不到光驱怎么解决?
  6. linux未使用磁盘空间满,linux磁盘空间用满的处理方法
  7. Intelij IDEA解决Dependency无法更新问题
  8. VARCHART XGantt Activex 5.2.095 Crack
  9. 关于node.js,dataStr的undefined的问题
  10. gtj2018如何生成工程量报表_工程量清单计价规范2018
  11. Java+Swing实现自助取款机(ATM)系统-TXT存储数据
  12. 服务器被攻击显示,怎么查看服务器被攻击
  13. js实现幻灯片案例解析
  14. python写spark的效率问题_“大数据架构”Spark 3.0发布,重大变化,性能提升18倍...
  15. 三子棋小游戏(超详细)
  16. 生活随机 - 下雨天的心情有烦恼有感动有确幸
  17. Ubuntu 查看电脑配置
  18. selenium wedriver镜像地址
  19. docker安装nginx kong konga
  20. 自动挡驾照后上路学习总结

热门文章

  1. RUP(Rational Unified Process)说明与模板(中文、英文)
  2. android手机屏幕适配理论知识
  3. 手机打开网页显示500服务器错误怎么办,访问网站时出现500错误该如何解决
  4. HTML表格标签跨行与跨列
  5. R_leaflet包_最易上手地图教程(一)(下)
  6. 什么是Hibernate的并发机制
  7. 英文输入法之欧睿英语容错输入法介绍及漫谈
  8. 数十位云栖专家齐聚京颐,畅谈智慧医疗未来趋势
  9. 山西省汾阳医院综合楼项目的能耗监测系统
  10. jenkins+gitlab实现自动化部署平台