这是当时笔试的时候遇到的算法题,但是当时是手写,而且没有多少时间了,虽然写了大概但是感觉写的不好,一些特殊情况没写了,确实是没有时间了,现在重新写一下。
分析一下:
输入是一个字符串,准备用string直接接收
然后后续很明显需要一个个字符的进行变化,那么我声明一个char[50]
然后排除特殊情况
然后变化完成的替换到另外一个新的char[50]。完成!
public class solotion4 {
public static void main(String[] args) {
Scanner sc= new Scanner(System.in);
char[] arr=new char[50];
char[] res=new char[50];
String a=sc.nextLine();
if(a.length()>50)
{
System.out.println(0);
return;
}
arr=a.toCharArray();
for (int i = 0; i <a.length() ; i++) {
if(arr[i]>'A'||arr[i]<'z')
{
int ins=0;
ins=arr[i];
if(arr[i]=='A')
{
res[i]='z';
}else if(arr[i]=='a')
{
res[i]='Z';
}
else if(ins>95)
{
ins=ins-32-1;
res[i]=(char)ins;
}
else{
ins=ins+32-1;
res[i]=(char)ins;
}
}
if(arr[i]==0)
res[i]=9;
if(arr[i]>0||arr[i]<=9)
{
int ins=0;
ins=arr[i]-1;
res[i]= (char) (ins);
}
}
}
}
完成啦