乙級-1033旧キーボードタイプ(20点)
古いキーボードにいくつかのキーが壊れているので、文字を叩くと対応する文字が現れません.入力すべき文字と、壊れたキーを与えて、文字はどうなりますか?
入力フォーマット
2行にそれぞれ壊れたキーと、入力すべき文字を入力します.ここで、英語のアルファベットに対応する悪いキーは大文字で与えられる.各セグメントの文字は105文字以下の列です.使用可能な文字には、アルファベット
注意:上段キーが壊れていると、大文字の英字は打てません.
出力フォーマット
1行に打出可能な結果文字を出力します.文字が1文字も打てない場合は空行を出力します.
入力サンプル
出力サンプル
Javaコード
1.(17分、テストポイント4運転タイムアウト)
2.(AC)
BufferedReaderを使用すると、読み込み速度が比較されます.
3.(AC)
書き方を変える
入力フォーマット
2行にそれぞれ壊れたキーと、入力すべき文字を入力します.ここで、英語のアルファベットに対応する悪いキーは大文字で与えられる.各セグメントの文字は105文字以下の列です.使用可能な文字には、アルファベット
[a-z, A-Z]
、 0-9
、アンダースコア_
(スペースを表す)、,
、.
、-
、+
(上位キーを表す)が含まれます.タイトルは、2行目に入力された文字列が空でないことを保証します.注意:上段キーが壊れていると、大文字の英字は打てません.
出力フォーマット
1行に打出可能な結果文字を出力します.文字が1文字も打てない場合は空行を出力します.
入力サンプル
7+IE.
7_This_is_a_test.
出力サンプル
_hs_s_a_tst
Javaコード
1.(17分、テストポイント4運転タイムアウト)
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
String[] strs = new String[2];
strs[0] = in.nextLine();
strs[1] = in.nextLine();
boolean haveUpper = true;
if (strs[0].contains("+")) {
haveUpper = false;
}
StringBuilder output = new StringBuilder();
for (int i = 0, len = strs[1].length(); i < len; i++) {
char c = strs[1].charAt(i);
// !
if (strs[0].indexOf(c) != -1) {
continue;
}
//
if (!haveUpper && (c >= 'A' && c <= 'Z')) {
continue;
}
//
if (strs[0].indexOf(Character.toUpperCase(c)) != -1) {
continue;
}
output.append(c);
}
if (output.toString().equals("")) {
System.out.println();
} else {
System.out.print(output);
}
System.out.print("");
}
}
2.(AC)
BufferedReaderを使用すると、読み込み速度が比較されます.
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[] strs = new String[2];
strs[0] = br.readLine();
strs[1] = br.readLine();
boolean haveUpper = true;
if (strs[0].contains("+")) {
haveUpper = false;
}
StringBuilder output = new StringBuilder();
for (int i = 0, len = strs[1].length(); i < len; i++) {
char c = strs[1].charAt(i);
// !
if (strs[0].indexOf(c) != -1) {
continue;
}
//
if (!haveUpper && (c >= 'A' && c <= 'Z')) {
continue;
}
//
if (strs[0].indexOf(Character.toUpperCase(c)) != -1) {
continue;
}
output.append(c);
}
if (output.toString().equals("")) {
System.out.println();
} else {
System.out.print(output);
}
System.out.print("");
}
}
3.(AC)
書き方を変える
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 str1 = br.readLine();
String str2 = br.readLine();
boolean[] badKey = new boolean[150];
for (int i = 0, len = str1.length(); i < len; i++) {
badKey[str1.charAt(i)] = true;
if (str1.charAt(i) >= 'A' && str1.charAt(i) <= 'Z') {
badKey[str1.charAt(i) + 32] = true;
}
}
StringBuilder result = new StringBuilder();
for (int i = 0, len = str2.length(); i < len; i++) {
if (badKey[str2.charAt(i)]) {
continue;
}
if (badKey['+'] && Character.isUpperCase(str2.charAt(i))) {
continue;
}
result.append(str2.charAt(i));
}
System.out.println(result);
}
}