题型:水题
题意:将QWERTY键盘上的字映射到Dvorak键盘
分析:
用Java写了一发,熟悉了一下HashMap的使用
HashMap<type,type> mp = new HashMap<type,type>();
type必须是封装类型,否则会报错
boolean Boolean
char Character
byte Byte
short Short
int Integer
long Long
float Float
double Double
切身体会了一把StringBuilder添加字符的速度,用String结果TLE了
代码:
import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;
public class Main{
static String QWERTY = "~!@#$%^&*()_+`1234567890-=WERTYUIOP{}|qwertyuiop[]ASDFGHJKL:asdfghjkl;'ZXCVBNM<>?zxcvbnm,./";
static String Dvorak = "~!@#$%^&*(){}`1234567890[]<>PYFGCRL?+|',.pyfgcrl/=AOEUIDHTNSaoeuidhtns-:QJKXBMWVZ;qjkxbmwvz";
static int M = 1234567;
private static HashMap<Character,Character> mp = new HashMap<Character,Character>();
private static void init() {
mp.clear();
int len = QWERTY.length();
for(int i=0;i<len;i++){
mp.put(QWERTY.charAt(i), Dvorak.charAt(i));
}
mp.put('Q', '"');
mp.put('"', '_');
}
public static void main(String[] args) {
init();
Scanner scan = new Scanner(System.in);
while(scan.hasNext()){
StringBuilder ans = new StringBuilder("");
String str = scan.nextLine();
int len = str.length();
for(int i=0;i<len;i++){
if(str.charAt(i) == ' '){
ans.append(' ');
continue;
}
if(str.charAt(i) == '\\'){
ans.append('\\');
continue;
}
ans.append(mp.get(str.charAt(i)));
}
System.out.println(ans);
}
}
}