JAVA-蓝桥杯-算法训练-字符串变换
问题描述
相信经过这个学期的编程训练,大家对于字符串的操作已经掌握的相当熟练了。今天,徐老师想测试一下大家对于字符串操作的掌握情况。徐老师自己定义了1,2,3,4,5这5个参数分别指代不同的5种字符串操作,你需要根据传入的参数,按照徐老师的规定,对输入字符串进行格式转化。
徐老师指定的操作如下:
1 表示全部转化为大写字母输出,如abC 变成 ABC
2 表示全部转换为小写字母输出,如abC变成abc
3 表示将字符串整个逆序输出,如 abc 变成 cba
4 表示将字符串中对应的大写字母转换为小写字母,而将其中的小写字母转化为大写字母输出,如 abC变成ABc
5表示将全部转换为小写字母,并将其中所有的连续子串转换为对应的缩写形式输出,比如abcD 转换为a-d,其次,-至少代表1个字母,既如果是ab,则不需要转换为缩写形式。
输入格式
一共一行,分别是指代对应操作的数字和字符串,两者以空格分隔,字符串全部由英文字母组成
输出格式
输出根据上述规则转换后对应的字符串
样例输入
5 ABcdEE
样例输出
a-ee
数据规模和约定
输入字符串长度最长为200。
---------------------
import java.util.Scanner;
public class 字符串变换 {//65 97
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
String s = sc.next();
sc.close();
if(n==1){
System.out.println(s.toUpperCase());
}
else if(n==2){
System.out.println(s.toLowerCase());
}
else if(n==3){
StringBuilder sb = new StringBuilder(s);
sb.reverse();
System.out.println(sb);
}
else if(n==4){
char [] num = s.toCharArray();
for (int i = 0; i < num.length; i++) {
if(num[i]>=97){
System.out.print((char)(num[i]-32));
}
else{
System.out.print((char)(num[i]+32));
}
}
}
else{
s=s.toLowerCase();
int temp=1;
char [] num = s.toCharArray();
for (int i = 0; i < num.length-1; i++) {
if(num[i]==num[i+1]-1){
if(temp==1) System.out.print(num[i]);
temp++;
}
else{
if(temp<=2)
System.out.print(num[i]);
else
System.out.print("-"+num[i]);
temp=1;
}
}
if(temp<=2)
System.out.print(num[num.length-1]);
else
System.out.println("-"+num[num.length-1]);
}
}
}
import java.util.Scanner;
public class Main{
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
int n=sc.nextInt();
String str=sc.next();
switch (n) {
case 1:{
System.out.println(str.toUpperCase());
break;
}
case 2:{
System.out.println(str.toLowerCase());
break;
}
case 3:{
char[] c=str.toCharArray();
for(int i=c.length-1;i>=0;i--) {
System.out.print(c[i]);
}
break;
}
case 4:{
StringBuilder strb=new StringBuilder();
for(int i=0;i<str.length();i++) {
if(str.charAt(i)>=97&&str.charAt(i)<=122) {
strb.append((char)(str.charAt(i)-32));
}else {
strb.append((char)(str.charAt(i)+32));
}
}
System.out.println(strb);
break;
}
case 5:{
str=str.toLowerCase();
char [] shu = str.toCharArray();
String st = "";
int a = 0,b=0;
if(shu.length>2){
for (int i = 0; i < shu.length-1; i++) {
if(shu[i+1]-shu[i]==1) {
if(i+1==shu.length-1) {
if(i-b<2) {
}
if(a==1) {
st+="-";
}
if(shu[i]-shu[i-1]!=1) {
st+=shu[i];
}
st+=shu[i+1];
continue;
}
if(a==0) {
st+=shu[i];
b = i;
}
a=1;
continue;
}
else {
if(i-b<2) {
st+=shu[i];
a=0;
continue;
}
a=0;
st+="-";
st+=shu[i];
}}
System.out.println(st);
}
else {
System.out.println(str);
}
// int sum=0,flag=0;
// str=str.toLowerCase();
// StringBuilder strb=new StringBuilder();
// strb.append(str.charAt(0));
// if(str.length()>=2) {
// for(int i=1;i<str.length()-1;i++) {
// if(str.charAt(i+1)-str.charAt(i)==1) {
// if(sum==0) {
// strb.append(str.charAt(i));
// flag=0;
// }
// sum++;
// }else {
// if(sum>1) {
// strb.append("-"+str.charAt(i));
//// strb.append(str.charAt(i+1));
//// i++;
// }else {
// strb.append(str.charAt(i));
// }
// flag=1;
// sum=0;
// }
// }
// if(flag==0&&sum>1) {
// strb.append("-");
// }
// strb.append(str.charAt(str.length()-1));
// }
// System.out.println(strb);
// break;
}
default:
break;
}
}
}
JAVA-蓝桥杯-算法训练-字符串变换的更多相关文章
- Java 蓝桥杯 算法训练 字符串的展开 (JAVA语言实现)
** 算法训练 字符串的展开 ** 题目: 在初赛普及组的"阅读程序写结果"的问题中,我们曾给出一个字符串展开的例子:如果在输入的字符串中,含有类似于"d-h" ...
- Java实现 蓝桥杯 算法训练 字符串长度(IO无敌)
试题 算法训练 字符串长度 问题描述 输入一个字符串,输出其长度. 输入格式 输入一个字符串 输出格式 输出字符串长度 样例输入 一个满足题目要求的输入范例. HelloWorld 样例输出 10 数 ...
- Java实现 蓝桥杯 算法训练 字符串合并
试题 算法训练 字符串合并 资源限制 时间限制:1.0s 内存限制:256.0MB 问题描述 输入两个字符串,将其合并为一个字符串后输出. 输入格式 输入两个字符串 输出格式 输出合并后的字符串 样例 ...
- Java 蓝桥杯 算法训练(VIP) 最大体积
最大体积 问题描述 每个物品有一定的体积(废话),不同的物品组合,装入背包会战用一定的总体积. 假如每个物品有无限件可用,那么有些体积是永远也装不出来的. 为了尽量装满背包,附中的OIER想要研究一下 ...
- Java蓝桥杯 算法训练 复数归一化
算法提高 复数归一化 时间限制:1.0s 内存限制:512.0MB 编写函数Normalize,将复数归一化,即若复数为a+bi,归一化结果为a/sqrt(aa+bb) + ib/sqrt(aa+b* ...
- Java 蓝桥杯 算法训练 貌似化学
** 貌似化学 ** 问题描述 现在有a,b,c三种原料,如果他们按x:y:z混合,就能产生一种神奇的物品d. 当然不一定只产生一份d,但a,b,c的最简比一定是x:y:z 现在给你3种可供选择的物品 ...
- 蓝桥杯 算法训练 ALGO-143 字符串变换
算法训练 字符串变换 时间限制:1.0s 内存限制:256.0MB 问题描述 相信经过这个学期的编程训练,大家对于字符串的操作已经掌握的相当熟练了.今天,徐老师想测试一下大家对于字符串操作的掌 ...
- Java实现 蓝桥杯 算法训练 第五次作业:字符串排序
试题 算法训练 第五次作业:字符串排序 问题描述 输入一个小写字符串,按从小到大的顺序输出. 输入格式 bcaed 输出格式 abcde 顶格输出,中间没有空格 样例输入 一个满足题目要求的输入范例. ...
- Java实现 蓝桥杯 算法训练 猴子吃包子(暴力)
试题 算法训练 猴子吃包子 问题描述 从前,有一只吃包子很厉害的猴子,它可以吃无数个包子,但是,它吃不同的包子速度也不同:肉包每秒钟吃x个:韭菜包每秒钟吃y个:没有馅的包子每秒钟吃z个:现在有x1个肉 ...
随机推荐
- 架构设计 | 分布式系统调度,Zookeeper集群化管理
本文源码:GitHub·点这里 || GitEE·点这里 一.框架简介 1.基础简介 Zookeeper基于观察者模式设计的组件,主要应用于分布式系统架构中的,统一命名服务.统一配置管理.统一集群管理 ...
- 假如用王者荣耀的方式学习webpack
英雄介绍 崴博.派克诞生于遥远西方的勇士之地,拥有着高超的机械技艺,善于运用各种工具来实现一些看似不可能完成的事.游历王者大陆时机缘巧合遇到了年轻的墨子,与之成为好友.后协助大宗师墨子建造了大陆第一雄 ...
- SpringBoot基础实战系列(二)springboot解析json与HttpMessageConverter
SpringBoot解析Json格式数据 @ResponseBody 注:该注解表示前端请求后端controller,后端响应请求返回 json 格式数据前端,实质就是将java对象序列化 1.创建C ...
- Unity接入友盟分享遇到的坑
最近项目接了一下友盟分享的SDK,中间遇到了几个坑,写下几条注意事项记录一下. 接入之前需要准备友盟开发者账号,相应平台开发者账号(微信.QQ.新浪微博)等... 安卓端: 1.确保 AndroidM ...
- Winform GDI+绘图二:绘制旋转太极图
大家好,今天有时间给大家带来Winform自绘控件的第二部分,也是比较有意思的一个控件:旋转太极图. 大家可以停下思考一下,如果让你来绘制旋转的太极图,大家有什么样的思路呢?我今天跟大家展示一下,我平 ...
- RobotFramework Selenium2Library 关键字详解
*** Settings *** Library Selenium2Library *** Keywords *** Checkbox应该不被选择 [Arguments] ${locator} Che ...
- 初试stm32嵌入式开发遇到的巨坑
开发板使用的是st官方的stm32F207ZG nucleo,遇到的问题是在keil中报错: no target connected 到网上找答案,都是说gpio口的问题,让按着reset键改debu ...
- centos6下filebeat多开问题
centos6下filebeat多开问题 0. 场景 比如之前在用filebeat做收集,但是想新开一个实例把之前的日志全部重新导一遍,如果直接指定filebeat -c 是不行的,因为filebea ...
- 【雕爷学编程】MicroPython动手做(05)——零基础学MaixPy之LCD液晶屏
配套 2.4寸LCD屏 ST7789驱动器芯片(24P 320X240) ST7789驱动器芯片2.4寸LCD屏(24P 320X240)主要参数 1. 模块名称:液晶显示模块2. 型号:KD024C ...
- Hive-拉链表
一.问答介绍 1.什么是拉链表? 维护历史状态,以及最新状态数据的一种表,拉链表根据拉链粒度的不同,实际上相当于快照,只不过做了优化,去除了一部分不变的记录,通过拉链表可以很方便的还原出拉链时点的客户 ...