牛客華為機試HJ21
阿新 • • 發佈:2022-04-04
1. 問題描述
2. Solution
1、思路
注意重複字串的處理
2、實現
Java
package huawei.HJ021; import java.io.IOException; import java.nio.file.Paths; import java.util.Scanner; public class Main { static Scanner in; static String inputFileName = "/Users/jun/Documents/Learn/JavaLearning/NowCoder/src/huawei/HJ020/input.txt"; static { if (!"Linux".equals(System.getProperty("os.name"))) { try { in = new Scanner(Paths.get(inputFileName)); } catch (IOException e) { e.printStackTrace(); } } else { in = new Scanner(System.in); } } public static void main(String[] args) { String letters1 = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"; String letters2 = "bcdefghijklmnopqrstuvwxyza"; String letters3 = "abcdefghijklmnopqrstuvwxyz"; String letters4 = "22233344455566677778889999"; while (in.hasNext()) { String line = in.nextLine(); for (int i = 0; i < line.length(); i++) { char c = line.charAt(i); if (Character.isUpperCase(c)) System.out.print(letters2.charAt(letters1.indexOf(c))); else if (Character.isLowerCase(c)) System.out.print(letters4.charAt(letters3.indexOf(c))); else System.out.print(c); } } } }
Python
import sys if sys.platform != "linux": sys.stdin = open("input/HJ21.txt") letters1 = "ABCDEFGHIJKLMNOPQRSTUVWXYZ" letters2 = "bcdefghijklmnopqrstuvwxyza" letters3 = "abcdefghijklmnopqrstuvwxyz" letters4 = "22233344455566677778889999" s = input().strip() for c in s: if c.isupper(): print(letters2[letters1.index(c)], end="") elif c.islower(): print(letters4[letters3.index(c)], end="") else: print(c, end="")