西安尚学堂练习09.17|Java编程笔试面试题

  1. 下列哪些类型能被throw语句抛出?

A. Error B. Exception C. Throwable D. Object

【解】注意Error也是可以被throw的,只是通常Error出现程序就中断了,我们并不会去捕获。

2.编程:给定两个字符串A,B(只包含26个英文字母),输出所有公共的最长子字符串(如果出现重复子串,则输出多次)

输入包括两行,每行为一个连续字符串(大小写敏感)

输出包括多行,每行为扫描到的最长公共子串,按照该子串在字符串A(即第一行输入字符串)中出现的先后次序输出

样例输入:

abcxyzabcrst

opqrstabc

样例输出:

abc

abc

rst

解答:与最长公共子序列一样,最长公共子串也可以采用动态规划(打表)进行求解。举个例子:X = bab,Y = caba。打表如下:
西安尚学堂练习09.17|Java编程笔试面试题
西安尚学堂练习09.17|Java编程笔试面试题

具体打表的方法是:

第一行、第一列初始化为 0;

对于其他的格子:

若对应的两个字符相等,格子的值设为左上角的值加 1。

若对应的两个字符不相等,直接置 0 。

3.编程:在一个整数的数组中删除另外一个整数数组中的元素,并保留原数组的次序

输入包括两行:

  1. 第一行是被删除的整数列表(记为列表A),每个整数之间使用空格分隔

  2. 第二行是需要删除的整数列表(记为列表B),每个整数之间使用空格分隔

输出只有一行,即列表A中删除列表B元素后的整数列表,输出元素按照在列表A中的次序排列,每个整数之间使用空格分隔

样例输入:

1 2 3 4 5

2 4

样例输出:

1 3 5

解答思路:本题较简单,获取第一行时,用一个list保存;获取第二行时,将每个数从list中删除,最后输出即可。

猜你喜欢

转载自blog.51cto.com/14512197/2438462