华为OD机试之字符串分割
字符串分割
题目描述
给定一个非空字符串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机试之字符串分割相关推荐
- 华为OD机试真题大全完整目录
华为OD机试真题大全完整目录 专栏说明如下 专栏目录 专栏说明如下 内容:华为OD机试真题大全 数量:406篇博文(2023年5月16日截止) 更新时间至:2023年5月16日(后续加上去的博文,会每 ...
- 【华为OD机试真题 JAVA】字符串分割(二)
JS版:[华为OD机试真题 JS]字符串分割(二) 标题:字符串分割 | 时间限制:1秒 | 内存限制:262144K | 语言限制:不限 给定一个非空字符串S,其被N个'-'分隔成N+1的子串,给定 ...
- 【华为OD机试真题 JAVA】字符串分割
JS版:[华为OD机试真题 JS]字符串分割 标题:字符串分割 | 时间限制:3秒 | 内存限制:262144K | 语言限制:不限 给定非空字符串s,将该字符串分割成一些子串,使每个子串的ASCII ...
- 【华为OD机试真题 Python】加扰字符串
前言:本专栏将持续更新华为OD机试题目,并进行详细的分析与解答,包含完整的代码实现,希望可以帮助到正在努力的你.关于OD机试流程.面经.面试指导等,如有任何疑问,欢迎联系我,wechat:steven ...
- 【华为OD机试真题 Python】判断字符串子序列
前言:本专栏将持续更新华为OD机试题目,并进行详细的分析与解答,包含完整的代码实现,希望可以帮助到正在努力的你.关于OD机试流程.面经.面试指导等,如有任何疑问,欢迎联系我,wechat:steven ...
- 【满分】【华为OD机试真题2023 JAVAJS】字符串解密
华为OD机试真题,2023年度机试题库全覆盖,刷题指南点这里 字符串解密 知识点数组字符串排序 时间限制:1s 空间限制:256MB 限定语言:不限 题目描述: 给定两个字符串string1和stri ...
- 【华为OD机试 2023】 字符串解密(C++ Java JavaScript Python)
华为od机试共有3道题,分值为100+100+200,总分为400分.时间限制为150分钟或3个小时..每道题目都需要通过测试用例来得分,全通过则为满分.华为od机试是在牛客网上进行的,采用ACM模式 ...
- 【华为OD机试真题】字符串解密(C++javapython)100%通过率 超详细代码注释 代码解读
[华为OD机试真题 2022&2023]真题目录 @点这里@ [华为OD机试真题]信号发射和接收 &试读& @点这里@ [华为OD机试真题]租车骑绿道 &试读& ...
- 2023华为OD机试备考攻略 以及题库目录分值说明 考点说明
刷题库,刷题库 刷题库.重要的事情说三遍!!!!!!!!!!!!!!!!!!!!!! 要刷有多种语言的实现的题库,一种语言看不懂可以换另一种语言,而且可以结合起来去重!!! 类似下面这种的题库: 华为 ...
最新文章
- Python - 按天算年龄
- SVM针对中文文本分类
- centos yum安装_centos7上yum安装碰到的坑
- mysql function_Koa2 amp; mySQL amp; PM2 搭建后端服务
- 光驱怎么挂载第二个光驱_重装系统下侦测不到光驱怎么解决?
- linux未使用磁盘空间满,linux磁盘空间用满的处理方法
- Intelij IDEA解决Dependency无法更新问题
- VARCHART XGantt Activex 5.2.095 Crack
- 关于node.js,dataStr的undefined的问题
- gtj2018如何生成工程量报表_工程量清单计价规范2018
- Java+Swing实现自助取款机(ATM)系统-TXT存储数据
- 服务器被攻击显示,怎么查看服务器被攻击
- js实现幻灯片案例解析
- python写spark的效率问题_“大数据架构”Spark 3.0发布,重大变化,性能提升18倍...
- 三子棋小游戏(超详细)
- 生活随机 - 下雨天的心情有烦恼有感动有确幸
- Ubuntu 查看电脑配置
- selenium wedriver镜像地址
- docker安装nginx kong konga
- 自动挡驾照后上路学习总结