中博网络技术_开发_笔试

小菜鸡的小厂经验又来啦~

中博网络技术,一个半小时

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#
全部评论
他这两个一个是都是腾讯的面试题 编程题是困难难度的🙄
8 回复 分享
发布于 2022-02-21 18:18
java答案第一题 (1)rule.charAt(iRule)         (2)str.substring(i).equals(rule.substring(iRule))         (3)str.charAt(iStr)<'0&(30533)#39; || str.charAt(iStr)>'9&(30534)#39;         (4) return false         (5) iStr >= lStr
3 回复 分享
发布于 2022-09-14 16:06 广东
唉,我大概也没戏了。我给提供一份答案吧,这是我笔试后想出来的。 填空题: (1) rule[iRule] (2) String.Equals(str.Substring(i),rule.Substring(iRule))  (3) iStr >= lStr (4) return false (5) iStr >= lStr
1 回复 分享
发布于 2022-02-12 00:37
第一题的python版!!! 如有错误,欢迎指出,python没有switch,所以break改为了continue
1 回复 分享
发布于 2022-04-16 15:55
这两道笔试题的答案在哪可以找到
点赞 回复 分享
发布于 2021-10-20 17:43
这是我的答案
点赞 回复 分享
发布于 2023-03-11 21:22 广东

相关推荐

评论
17
27
分享
牛客网
牛客企业服务