首页 > 试题广场 >

密码翻译

[编程题]密码翻译
  • 热度指数:27090 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 64M,其他语言128M
  • 算法知识视频讲解
在情报传递过程中,为了防止情报被截获,往往需要对情报用一定的方式加密,简单的加密算法虽然不足以完全避免情报被破译,但仍然能防止情报被轻易的识别。我们给出一种最简的的加密方法,对给定的一个字符串,把其中从a-y,A-Y的字母用其后继字母替代,把z和Z用a和A替代,则可得到一个简单的加密字符串。

输入描述:
读取这一行字符串,每个字符串长度小于80个字符


输出描述:
对于每组数据,输出每行字符串的加密字符串。
示例1

输入

Hello! How are you!

输出

Ifmmp! Ipx bsf zpv!
示例2

输入

zzz

输出

aaa
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
		
		Scanner scanner = new Scanner(System.in);
		while (scanner.hasNext()) {
			
			String str = scanner.nextLine();
			StringBuilder sb = new StringBuilder();
			
			for (int i = 0; i < str.length(); i++) {
				if (str.charAt(i)>='a'&& str.charAt(i)<='y') {
					sb.append((char) (str.charAt(i) + 1));
				}else if (str.charAt(i)>='A' && str.charAt(i)<='Y') {
					sb.append((char) (str.charAt(i) + 1));
				}else if (str.charAt(i) == 'z') {
					sb.append('a');
				}else if (str.charAt(i) == 'Z') {
					sb.append('Z');
				}else {
					sb.append(str.charAt(i));
				}
			}
			
			System.out.println(sb.toString());
		}
	}
}

发表于 2024-03-18 16:45:07 回复(0)
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;


public class Main {

    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        String s;
        while ((s = br.readLine()) != null) {
//             int n = Integer.parseInt(str);
//             for (int i = 0; i < n; i++) {
//                 String s = br.readLine();
                StringBuilder sb = new StringBuilder(s);
                for (int j = 0; j < s.length(); j++) {
                    char c = s.charAt(j);
                    if ((c >= 'a' && c < 'z') || (c >= 'A' && c < 'Z'))
                        sb.setCharAt(j, (char) (s.charAt(j) + 1));
                    if (c == 'z')
                        sb.setCharAt(j, 'a');
                    if (c == 'Z')
                        sb.setCharAt(j, 'A');
                }
                System.out.println(sb);
//             }
        }

    }
}





发表于 2021-04-25 15:04:18 回复(0)
Java 解法
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        String s = scanner.nextLine();
        char[] array = s.toCharArray();
        StringBuilder builder = new StringBuilder();
        for (char c : array) {
            if (c>='a'&&c<'z') builder.append((char)(c+1));
            else if (c>='A'&&c<'Z') builder.append((char)(c+1));
            else if (c=='Z') builder.append('A');
            else if (c=='z') builder.append('a');
            else builder.append(c);
        }
        System.out.println(builder.toString());
    }
}


发表于 2020-03-17 17:16:21 回复(0)
水题,注意细节即可
import java.util.*;
public class Main {
    public static void main(String[] args) {
        Scanner reader = new Scanner(System.in);
        while (reader.hasNextLine()) {
            String line = reader.nextLine();
            StringBuilder res = new StringBuilder();
            for (int i = 0; i < line.length(); ++i) {
                char word = line.charAt(i);
                if ((word >= 'A' && word <= 'Z') || (word >= 'a' && word <= 'z')) {
                    if (word == 'Z')
                        word = 'A';
                    else if (word == 'z')
                        word = 'a';
                    else 
                        word = (char)((int)word+1);
                }
                res.append(word);
            }
            System.out.println(res.toString());
        }
    }
}

发表于 2018-04-03 21:29:59 回复(0)
可以强行用一波正则
import java.util.Scanner;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Main {
    public static void main(String[] args) {
         Scanner scan=new Scanner(System.in);
         String str=scan.nextLine();
        Pattern p=Pattern.compile("[a-yA-Y]|[zZ]");
        Matcher m=p.matcher(str);
        StringBuffer sb=new StringBuffer();
        while(m.find()){
            if(m.group().matches("[zZ]")){
                m.appendReplacement(sb,(char)(m.group().charAt(0)-25)+"");
            }else{
                m.appendReplacement(sb,(char)(m.group().charAt(0)+1)+"");
            }
        }
        m.appendTail(sb);
        System.out.println(sb);
    }
}

发表于 2018-03-31 15:32:30 回复(0)
public class Main {
	
	  public String doSome(String string){
		 String s="";
		 for(int i=0;i<string.length();i++){
			 if((string.charAt(i)>=65&&string.charAt(i)<=90)||(string.charAt(i)>=97&&string.charAt(i)<=122)){
				 s=s+(char)(string.charAt(i)+1);
				 continue;
			 }
			 if(string.charAt(i)==32){
				 s=s+(string.charAt(i));
				 continue;
			 }
			 s=s+string.charAt(i);
		 }
		 return s;   
	  }
	
      public static void main(String[] args) {
		 Scanner s=new Scanner(System.in);
		 int count=0;
		 int size=Integer.valueOf(s.nextLine());
		 String input;
		 Main m=new Main();
		 while(count<size){
			 input=s.nextLine();
			 System.out.println(m.doSome(input));
			 count++;
		 }
	  }
}


发表于 2017-06-04 19:24:19 回复(0)
import java.util.Scanner;

/**
 * Created by fhqplzj on 17-2-1 at 下午1:35.
 */
public class Main {
    private static String helper(String s) {
        StringBuilder stringBuilder = new StringBuilder();
        for (char c : s.toCharArray()) {
            if (Character.isAlphabetic(c)) {
                if (c == 'z') {
                    stringBuilder.append('a');
                } else if (c == 'Z') {
                    stringBuilder.append('A');
                } else {
                    stringBuilder.append((char) (c + 1));
                }
            } else {
                stringBuilder.append(c);
            }
        }
        return stringBuilder.toString();
    }

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        while (scanner.hasNextInt()) {
            int n = scanner.nextInt();
            scanner.nextLine();
            for (int i = 0; i < n; i++) {
                String s = scanner.nextLine();
                System.out.println(helper(s));
            }
        }
    }
}

发表于 2017-02-02 10:34:44 回复(0)