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个肉 ...
随机推荐
- 51单片机putchar函数的说明
原文排版远些乱,整理了一下. #include <reg51.h> #define XON 0x11 /*串口流控制符 启动*/ #define XOFF 0x13 /*串口流控制符 中断 ...
- ":-"的用法举例
例子1: #!/bin/bash A=aaa C=${A:-bbb} echo $C 输出结果:aaa 例子2: #!/bin/bash A="" C=${A:-bbb} echo ...
- 05JAVA基础方法
一.格式 函数有返回值 public static 返回类型 方法名(参数类型 形参1,参数类型 形参2){ 函数体; return 返回值;//返回值必须是定义的返回类型 } 函数没有有返回值 pu ...
- python pip下载设置
安装命名为 pip install -i 网址 所需要安装的库名例如:pip install -i https://pypi.tuna.tsinghua.edu.cn/simple requests ...
- day_02~day_09的Python语法基础
Python基础学习 day_02 使用方法修改字符串的大小写 将字符串首字母变成大写 >>> name = "ada lovelace" >>> ...
- 【Jmeter学习】【第一节】【Jmeter的安装】
转载至https://www.cnblogs.com/qinlangsky/p/11941230.html 写的非常详细
- ql的python学习之路-day1
写在前面的话:万事开头难,算是系统学习python的一个月了吧,总该写点什么来记录一下,之前看老男孩day1的视频没有开通博客,这次给补上,对于学python还是要好好努力,不能半途而废,还是那句老话 ...
- 2.7 Go交叉编译
Golang 支持交叉编译,在一个平台上生成另一个平台的可执行程序,最近使用了一下,非常好用,这里备忘一下. Mac 下编译 Linux 和 Windows 64位可执行程序 CGO_ENABLED= ...
- linux常用命令---中英文设置
中英文设置 LANG变量 echo $LANG---------查看当前编码 locale -----------------设置之后可查看详细信息 中文设置 # vim /etc/profile.d ...
- Django模板之模板标签
标签比变量更加复杂:一些在输出中创建文本,一些通过循环或逻辑来控制流程,一些加载其后的变量将使用到的额外信息到模版中. 一些标签需要开始和结束标签 (例如:{% tag %} ...标签 内容 ... ...