中博网络技术_开发_笔试
小菜鸡的小厂经验又来啦~
中博网络技术,一个半小时
emmm,约的9号上午10:00笔试,8号上午突如其来的就收到了笔试邀请,措不及防,我人直接傻了……
就两道题目
第一道程序补全题如下:
【程序说明】
应用计算机处理日常事务或者是编写程序的时候,经常需要用到带有通配符的字符串匹配。
比如:linux命令行下输入,ls .txt就是列出当前目录下所有的结尾是.txt的文件。
下面一段函数实现了带有$和*两种通配符的字符串的匹配功能。
其中:$表示长度大于0的数字串,表示任意长度的字符串。
要求:按照自己对于算法的理解填写该函数的5个空白。
请注意:必须是完全匹配才能返回true,比如1.txt, a.txt可以匹配.txt,2.tx或者2.txta不能匹配.txt。函数的参数与返回值的说明请参见函数的注释。
// 功能描述: 表达式是否匹配成功, $表示长度大于0的数字串,*表示任意长的字符串 // 输入参数:@pRule, 以'\0'结束的字符串,表示规则; // @pStr, 以'\0'结束的待匹配的字符串; // 返回值: true:匹配成功; false: 匹配失败
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; } }
结束后去查了下,发现这道题在网上大佬面的腾讯wxg四面当中也出现了……
第二道编程题如下:
输入任意一种物质,要求输出其每种元素的数量。
比如:
输入CaCO3,其组成分别为Ca:1,C:1,O:3,输出Ca1C1O3
输入Fe2(SO4)3,其组成分别为Fe:2,S:3,O:12,输出Fe2S3O12 (注意:元素名称首字母大写,剩余字母都小写;括号括起来表示括号中的结构作为整体出现多少次)
这道题我初看感觉算不上特别难(毕竟还有不少思路),然后越写越不对劲,最后人麻了……
两道题都没有完成,直接挂了,我果然是小菜鸡……
#2022届秋招进度交流##笔试题目##笔经##Java#