滴滴笔试

貌似是最近做的最。。简单的笔试题了(

  1. 交换一次或不交换一个字符串的两个字母,得到一个字典序最小的字符串
    ac:有点类似双指针,先固定头部位置,从后向前找比头部位置小的最小字母,如果有则交换,结束;如果没有那么头部位置向后移动直到不相等,然后重复步骤1

  2. 一个救助站,多个居民点,有多条边,救助站能访问所有居民点,判断是否删除任意一条边后救助站仍然可以访问任意一个居民点
    ac:直接判断任意两点之间是否有2条或以上的边数

。。

#滴滴##笔经#
全部评论
第二题判断一下有没有数字出现次数小于2就好了
3 回复 分享
发布于 2021-03-20 20:43
楼主真厉害。。我一道没做出来
3 回复 分享
发布于 2021-03-20 20:18
第一题有啥注意的点吗?或者特殊的数据,感觉自己思路和楼主差不多啊,就是一直27%?🤨
2 回复 分享
发布于 2021-03-20 20:45
回文那题有大佬通过率超过18%的么?动态规划,中心展开,递归都是18%,吐了
1 回复 分享
发布于 2021-03-20 21:33
第一题100%,用的递归: public class Main {     public static void main(String[] args) {         String s = new Scanner(System.in).nextLine();         char[] array = s.toCharArray();         recur(0,array.length,array);         System.out.println(array);     }     static void recur(int start,int end,char[] arr){         if (start>=end) return;         char min = arr[end-1];         int index = end-1;         for (int i = end-1; i >=start; i--) {             if (arr[i] < min){                 min = arr[i];                 index = i;                 if (min == 'a&(417)#39;) break;             }         }         for (int i = start; i < index; i++) {             if (arr[i]>min){                 arr[index] = arr[i];                 arr[i] = min;                 return;             }         }         recur(index+1,end,arr);     } }
1 回复 分享
发布于 2021-03-20 21:12
第一题91,怎么调试都没用😤
1 回复 分享
发布于 2021-03-20 20:36
第一题过55不知道为啥
1 回复 分享
发布于 2021-03-20 20:31
请问滴滴的笔试需要自己处理输入输出嘛
点赞 回复 分享
发布于 2021-04-09 12:18
第一题超时,第二题AC。字符串一直不太会
点赞 回复 分享
发布于 2021-03-21 12:19
第二题我想复杂了,我以为直接判断不行呢……好吧,我是垃圾……
点赞 回复 分享
发布于 2021-03-21 09:49
第一题我也是和楼主一样的思想,但是85。第二题,我个人认为楼主的思路有漏洞,会有两条边但是阻断了任意一条边,不与救援点相连的情况。我认为,我可以直接与救援点的居民点当作救援点,如果所有的居民点与救援点的连线不小于两条则成立。
点赞 回复 分享
发布于 2021-03-21 09:31
笔试简单面试怕是杀人。。。。
点赞 回复 分享
发布于 2021-03-21 09:12
代码。
点赞 回复 分享
发布于 2021-03-20 21:29
第一题就是后面找一个最小的跟前面交换就完了
点赞 回复 分享
发布于 2021-03-20 21:06
没看懂第一题的用例输出,不是说最多可以交换两次吗,aaazbcdeadcd交换一次可以得到aaaabcdezdcd(原题答案),我再把d和c交换一下aaaabccezddd,这个字典序不是更小吗?在这卡了好久,始终没想通。。。
点赞 回复 分享
发布于 2021-03-20 21:04
第一题楼主暴力解也能过🙄 第二题我也是一样的解法,但是其实不对:两个分离的三角形也是符合你代码情形,不过不符合题意(反正AC了😂
点赞 回复 分享
发布于 2021-03-20 21:02
说下第一题O(n)的思路:      先找输入字符串的最小字母序字符串(直接把输入字符串a-z的个数读出来,然后依次a-z再组装起来),用输入字符串和最小字符串比较,遇到的第一个不同字符的就是需要交换的字母。
点赞 回复 分享
发布于 2021-03-20 20:57
塞码是统计最高分还是最后提交的
点赞 回复 分享
发布于 2021-03-20 20:55
为啥我两道都是字符串
点赞 回复 分享
发布于 2021-03-20 20:50
我醉了 没人第二题是那个回文串的吗 挺简单的一题直接动态规划,死活18 过了测试用例,不知道错在哪里
点赞 回复 分享
发布于 2021-03-20 20:48

相关推荐

去年校招接了一个全栈开发的offer让提前去实习,要培训两周我接offer之前就说了目前一周只能去三天,hr说没问题入职当天又跟带教说了一周只能去三天,带教说可以的现在只是培训入职第一天给了个文档让几个校招生自己学习,其实就是一堆菜鸟教程链接到了下班时间一个类似于组长的人开始一番思想教育当时就觉得不对劲,有点想离职周二周三学校有事来不了,但是自己在学校把周二周三的培训任务做了由于连不上公司内网,ui设计稿看不到详细的位置参数,于是跟带教说好周四来改周四来改了一天,下午四点多,带教把我叫到会议室“你已经落后别人两天的进度了,自己打算怎么办”?你是第一天知道我一周只来三天吗我说那我在学校也赶进度啊,也没有说丢到一边只有在公司的时候才做任务“但是你现在跟其他几个校招生进度差很多,你自己有什么想法没有”有的兄弟有的,我直接问怎么离职开发leader没过几分钟就来找我说聊一聊,我就重复了一遍leader说现在学校有事的话也可以过几个月再来培训骚瑞不会再来,赶紧给我批离职我要走人嗯而且这个leader会区分前后端的级别,认为前端级别比后端高,前端技术对业务能力要求更高,没什么好说的入职第四天,去工位第二天下午直接离职走人从公司出来之后感觉整个人神清气爽哈哈哈哈哈其实入职当天就觉得不对劲,一直没问题的电动车那天早上轮胎漏气,入职当天淅淅沥沥的下雨,办公室只有一半工区开灯,下午的时候另一半工区虽然是前台和会议室还有展示区,但是黑漆漆的,第一天下班的时候还思想教育,当感觉有什么东西暗示你这个岗位不合适的时候就赶紧走吧
入职跑路最快的一次经历
点赞 评论 收藏
分享
鼠鼠做的&nbsp;91&nbsp;100不知道为什么第一题有一个用例过不去,没啥好思路就暴力做了,佬们可以帮忙看看代码吗?第一题:波浪数,给定进制【a,b】和十进制【l,r】,以及波浪数【k】,求波浪数满足条件的十进制数。波浪数定义为两个不同的数交替构成的,如&nbsp;1010,&nbsp;1A1,&nbsp;ABA;请在【a,b】进制中找到这样的十进制数,且该十进制数必须在区间【l,r】中#####################################################################a,b,l,r,wave=map(int,input().split())mapList={chr(ord(&quot;A&quot;)+i):10+i&nbsp;for&nbsp;i&nbsp;in&nbsp;range(26)}for&nbsp;i&nbsp;in&nbsp;range(10):mapList[str(i)]=inumList={10+i:chr(ord(&quot;A&quot;)+i)&nbsp;for&nbsp;i&nbsp;in&nbsp;range(26)}for&nbsp;i&nbsp;in&nbsp;range(10):numList[i]=str(i)def&nbsp;getTenTrans(v,k):#&nbsp;对应的元素ans=0v=str(v)[::-1]for&nbsp;i&nbsp;in&nbsp;range(len(v)):ans+=k**i*mapList[v[i]]return&nbsp;ansansList={}#&nbsp;先找到需要处理的进制区间内所有对应的元素for&nbsp;k&nbsp;in&nbsp;range(a,b+1):#&nbsp;上下限for&nbsp;i&nbsp;in&nbsp;range(1,k):for&nbsp;j&nbsp;in&nbsp;range(k):if&nbsp;i&nbsp;==&nbsp;j:&nbsp;continueq=numList[i]p=numList[j]temp=f&quot;{q}&quot;idx=2while&nbsp;getTenTrans(temp,k)&lt;l:temp+=p&nbsp;if&nbsp;idx%2==0&nbsp;else&nbsp;qidx+=1v=getTenTrans(temp,k)while&nbsp;v&lt;=r:if&nbsp;v&nbsp;not&nbsp;in&nbsp;ansList:ansList[v]&nbsp;=&nbsp;1else:ansList[v]&nbsp;+=&nbsp;1temp+=p&nbsp;if&nbsp;idx%2==0&nbsp;else&nbsp;qidx+=1v=getTenTrans(temp,k)res=[]for&nbsp;k,v&nbsp;in&nbsp;ansList.items():if&nbsp;v==wave:res.append(k)res.sort()for&nbsp;i&nbsp;in&nbsp;res:print(i)####################################################################
投递滴滴等公司10个岗位
点赞 评论 收藏
分享
评论
9
22
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务