输入格式:
输入在 2 行中分别给出应该输入的文字、以及实际被输入的文字。每段文字是不超过 80 个字符的串,由字母 A-Z(包括大、小写)、数字 0-9、以及下划线 _(代表空格)组成。题目保证 2 个字符串均非空。
输出格式:
按照发现顺序,在一行中输出坏掉的键。其中英文字母只输出大写,每个坏键只输出一次。题目保证至少有 1 个坏键。
输入样例:
7_This_is_a_test
_hs_s_a_es
输出样例:
7TI
这题用了一个字符串r来放坏掉的键盘,用contains方法判断是否该坏键已经出现过。第二行的长度肯定是不大于第一行的长度,所以用第二行字符串的长度做第一次遍历,以防超出边界,遍历完一次后,接着遍历第一行还没遍历过的字符
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String a = sc.nextLine().toUpperCase();
String b = sc.nextLine().toUpperCase();
int indexa = 0, indexb = 0;
String r = "";
while (indexb < b.length()) {
//第一次遍历
char ta = a.charAt(indexa);
char tb = b.charAt(indexb);
if (ta != tb) {
//两个指针所指字符不相同
if (!r.contains(ta + "")) {
//判断该坏件是否出现过
r += ta;
}
//第一个指针指向下一个字符
indexa++;
} else {
//两个指针所指的字符相同,则一同指向下一个字符
indexa++;
indexb++;
}
}
while (indexa < a.length()) {
//第二次遍历
char ta = a.charAt(indexa);
if (!r.contains(ta + "")) {
r += ta;
}
indexa++;
}
System.out.println(r);
}
}