某公司笔试

某公司的笔试里有10单选、5多选、4编程、1压轴(其实就是解答题,我还以为是编程题…最后编程题都没做完想去写它结果…),这里我用印象写下编程题。先写自己当时的想法,明天去找找优化方法,有想法的小伙伴也可以在评论区发下或者私聊我。

  1. 给一个字符串,要求变为字符不重复的字符串,遇见重复的则以第一个出现的位置为准。如abcbdde->abcde。不允许使用集合类和contains等方法

我用的最暴力的方法,用StringBuilder对象去存字符。每次去存字符前,都要把StringBuilder已经存的全检索一遍,如果已经存在就抛弃去看下个字符,如果不存在就存入StringBuilder,没想到这样都能过了全部的用例…

  1. 文件开头多种书的信息,分为4类信息
名字类别描述
idint书号
categoryint分类
wordsint字数
updatetimedate更新日期

输入方式id,category,words,updatetime,每行一组
排序方式 category>updatetime>id>words
按这个顺序输出id

我的想法是写一个book类,实现comparable接口,compareTo方法里用嵌套的ifelse,来设定这个比较顺序,大的往前放,相同则比较下一个属性。把输入数据变成一个book数组,调用Arrays.sort方法来按照这个顺序,结果自己竟然卡在了不会把字符串转成Date对象上…惭愧啊!!!比较方法也没写完。

  1. 输出整数n转为二进制后1的个数,n>0

这个我的想法也比较简单,就是每次%2。为1则count++,为0则不管,然后n=n/2,直到n=0为止。没想到这样就过了全部用例,本来还以为可能会有数据过大,要用大数或者字符串来处理,没想到过了…

  1. 给一个二维矩阵,然后把矩阵顺时针旋转90度,然后把矩阵元素一行一行输入,输入为一行字符串,元素中间用,隔开。要求额外空间复杂度为O(1)

因为额外空间复杂度为O(1),那用二维数组存储矩阵之后就不能再用其他的数组存了。其实顺时针旋转90度再输出,就是把二维数组按第0列开始,第n-1行开始,从下往上,从左往右输出。这样就不需要二维数组先存储再输出了(其实先存储也是按照这个顺序存到二维数组然后正常输出而已)。
在这里插入图片描述

最后压轴题问了一个AIO、BIO、NIO,原谅我还没复习到…在答题区说了还不会十分抱歉…就交了…
解答题就解答题呗,为啥叫啥压轴题,我还以为也是编程题,编程题还没写完就交了…

在这里插入图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值