3.4笔试总结

感觉题目好难没有做过这种类型的填空题

真的是给应届实习生做的题吗

第一大题 填空题

一开始题目放在pdf里,我都没看清题目想干嘛

其实题目看起来复杂.如果仔细读题意还是能做出几个空,无奈我太过紧张

浪费了好几分钟空档时间

public class Main { public static boolean isRegularMatching(String rule, String str) { int lRule = rule.length(); int lStr = str.length(); int iRule = 0; int iStr = 0; while (iRule < lRule && iStr < lStr) { switch (_____(1)_____) { case '*': { iRule += 1; if (iRule >= lRule) { return true; } else { for (int i = iStr; i < lStr; i++) { if (_____(2)_____) { return true; } } } break; } case '$': { if (_____(3)_____) { return false; } while ((iStr < lStr) && (str.charAt(iStr) >= '0') && (str.charAt(iStr) <= '9')) { iStr += 1; } iRule += 1; break; } default: { if (rule.charAt(iRule) != str.charAt(iStr)) { _____(4)_____; } iRule += 1; iStr += 1; break; } } } if (iRule < lRule && iStr >= lStr) { if (rule.charAt(iRule) == '*') { return true; } } else { return _____(5)_____; } return false; }}

其实我一下子被这么长的题目给吓到了.但是仔细分析题意还是可以的

所以第一个空还是比较简单的

3.4笔试总结_第1张图片

题目都说了不同的符号表示不同的规则

自然而然就选

3.4笔试总结_第2张图片

也就是

1)第一个空

rule.charAt(i)

2)第二个空

第二个我想了好久,我一开始没有搞懂那个if想干嘛

但是可以回到Switch语句

在这个case里,要求就是

那么意思我们str里所有的元素都得是字符

所以应该就是遍历str看有没有数字

我们再回到if语句,表示rule的字符还没有走完,

走完了就返回true

那么什么时候再没有走完的情况就会返回true呢

因为这是一个大的循环,他们一直在不停的比较

也就是在最后一个字符的情况下.字符都相同那就返回

所以这里的答案应该就是

str.substring(i).equals(rule.substring(iRule))

这里的rule我觉得大概举例就是

*15424$sadasfasf这 个意思

我刚开始搞不清楚可能就是因为认为只有第一个是特殊符号才会出错

3)第三个空

3.4笔试总结_第3张图片

这个空就比较简单的根据题意$表示的都是数字

只要观察str对应的是不是数字就可以

那就是

str.charAt(iStr)<'0'||str.charAt(iStr)>'9'

4)第四个空

3.4笔试总结_第4张图片

表示不是符号

那就是代表的是正常的数,这里就得让rule和str互相对应

如果不对应就是错的

也比较简单

直接返回

RETURN FALSE;

5) 第五个空

3.4笔试总结_第5张图片

这里走出大循环,走出大循环只有一种可能

不满足这个条件了

要么rule走完了,要么str走完了

有以下三种情况

①rule没走完str走完了,但是rule最后一个是* *代表任意长度的字符串所以是可以的也就是对应

3.4笔试总结_第6张图片

②rule没走完str走完了.但是rule最后一个不是*所以对应最后结尾的

3.4笔试总结_第7张图片

③str走完了并且rule也走完了,那就说明一样长,就匹配了

④str没走完rule也没走完.说明str比rule长.那就不匹配

3.4笔试总结_第8张图片

所以判断条件就是

第二道题 程序题

3.4笔试总结_第9张图片

此题的难点就是在于

1.要记录当前元素,因为大写和小写在一起就是同一个元素

但是有些是只有一个字母

2.要记录元素的次数,因为有些元素不写次数就代表是1.但是这些得记下来,最关键有些是两个字母是一起的不是简单的遍历就可以

3,需要把两个字母捆绑一起,记录在一起,再记录对应的次数

4,遇到括号的处理

思路:

①用hashmap处理元素.因为可以用key-value存储,第一次遍历记录的元素先记为1

②后续遍历的到记录对应的次数用Arrylist记录,

第三道 侧开笔试题

一共四十道选择题-5道多选题

感觉百分之八十都是测试有关的知识点,

有百分之十是说游戏的

还有百分之十问了一点linux和Mysql的简单操作

感觉总体不难,都是一些简单的东西,但是测试很多东西我都忘了,比如模型那些,

很多概念问题

你可能感兴趣的:(菜鸟,面试)